<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sim+timm03</id>
	<title>Simulace.info - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sim+timm03"/>
	<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php/Special:Contributions/Sim_timm03"/>
	<updated>2026-07-27T16:28:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26627</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26627"/>
		<updated>2025-01-28T17:15:08Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NLOGO CODE - [[file:Traffic.nlogo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Traffic.nlogo&amp;diff=26626</id>
		<title>File:Traffic.nlogo</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Traffic.nlogo&amp;diff=26626"/>
		<updated>2025-01-28T17:14:41Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: Sim timm03 uploaded a new version of File:Traffic.nlogo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26625</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26625"/>
		<updated>2025-01-28T17:10:42Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:traffic.nlogo]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26624</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26624"/>
		<updated>2025-01-28T17:09:04Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:Traffic.nlogo]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26623</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26623"/>
		<updated>2025-01-28T17:08:44Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:Traffic.nlogo]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Traffic.nlogo&amp;diff=26622</id>
		<title>File:Traffic.nlogo</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Traffic.nlogo&amp;diff=26622"/>
		<updated>2025-01-28T17:07:58Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26621</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26621"/>
		<updated>2025-01-28T17:05:50Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media:Example.ogg]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26368</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26368"/>
		<updated>2025-01-10T19:42:48Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011)&lt;br /&gt;
&lt;br /&gt;
== Engineering ==&lt;br /&gt;
Vehicle and road design improvements include:&lt;br /&gt;
&lt;br /&gt;
* **''Intersection geometry optimization:''** Represented in the code by the procedure &amp;lt;code&amp;gt;setup-intersections&amp;lt;/code&amp;gt;, which identifies and marks intersection patches. Traffic lights are not working as intended, but are in the code base and interface for user to try.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, **Human Reliability Analysis (HRA)** was used to determine driver error probabilities, particularly at urban intersections.(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability. &lt;br /&gt;
&lt;br /&gt;
In the code, this is reflected in the procedure &amp;lt;code&amp;gt;calculate-accident-probability&amp;lt;/code&amp;gt;, which scales a base driver-error rate by factors such as:&lt;br /&gt;
&lt;br /&gt;
* Road conditions  &lt;br /&gt;
* Speed ratio  &lt;br /&gt;
* Local congestion  &lt;br /&gt;
* Intersection complexity&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26366</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26366"/>
		<updated>2025-01-10T19:34:17Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: /* Method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
We adopt a multi-pronged, systematic approach to traffic safety, integrating **engineering**, **enforcement**, and **education**—commonly referred to as the “Triple E.(Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
=== Engineering ===&lt;br /&gt;
* Vehicle and road design improvements, such as:&lt;br /&gt;
** Enhanced signage.&lt;br /&gt;
** Intersection geometry optimization.&lt;br /&gt;
** Adequate lighting for visibility.&lt;br /&gt;
&lt;br /&gt;
=== Education ===&lt;br /&gt;
* Public awareness campaigns.&lt;br /&gt;
* Driver training programs aimed at:&lt;br /&gt;
** Improving risk perception.&lt;br /&gt;
** Reducing risk-taking behaviors.&lt;br /&gt;
&lt;br /&gt;
=== Enforcement ===&lt;br /&gt;
* Regulatory measures to ensure compliance with traffic laws:&lt;br /&gt;
** Speed limits.&lt;br /&gt;
** Legal penalties and sanctions.&lt;br /&gt;
&lt;br /&gt;
Additionally,  '''Human Reliability Analysis (HRA)''' and  was used to determine driver error probabilities, particularly at urban intersections(Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” task execution and measuring deviations, HRA quantifies how factors such as road geometry, driver age, and psychosocial influences affect driver reliability and error likelihood.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26357</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26357"/>
		<updated>2025-01-10T19:27:59Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;netlogo&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26354</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26354"/>
		<updated>2025-01-10T19:23:05Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This NetLogo simulation allows users to vary key parameters—such as base speed, number of cars (density), road condition (good to very bad), driver-error rate, and accident duration—then observe metrics like average travel time, distance/time until accident, and accident hotspots. Results show that poor roads and high driver-error rates sharply increase collisions, while long accident durations intensify congestion. Conversely, safer infrastructure, lower driver-error rates, and faster incident clearance foster smoother traffic flow and fewer crashes, underlining the value of integrated traffic safety strategies.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;globals [&lt;br /&gt;
  ;; Sliders / Switch in Interface:&lt;br /&gt;
  ;;   - number-of-cars      (int)&lt;br /&gt;
  ;;   - road-spacing        (int)&lt;br /&gt;
  ;;   - base-speed          (float)&lt;br /&gt;
  ;;   - driver-error-rate   (float)&lt;br /&gt;
  ;;   - accident-duration   (int)&lt;br /&gt;
  ;;   - traffic-lights?     (boolean switch)&lt;br /&gt;
&lt;br /&gt;
  ;; Statistics&lt;br /&gt;
  total-cars-reached-destination&lt;br /&gt;
  total-cars-accident         ;; how many cars died in accidents (cumulative)&lt;br /&gt;
  accident-count              ;; how many total accidents have started&lt;br /&gt;
  average-speed&lt;br /&gt;
  average-congestion&lt;br /&gt;
  accident-percentage&lt;br /&gt;
  sum-travel-time           ;; sum of time in system for all cars that exit&lt;br /&gt;
  count-completed-cars      ;; how many cars reached destination&lt;br /&gt;
  average-travel-time       ;; output metric&lt;br /&gt;
  accident-count-good&lt;br /&gt;
  accident-count-bad&lt;br /&gt;
  accident-count-very-bad&lt;br /&gt;
   sum-time-until-accident&lt;br /&gt;
  sum-distance-until-accident&lt;br /&gt;
  average-time-until-accident&lt;br /&gt;
  average-distance-until-accident&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
patches-own [&lt;br /&gt;
  is-road?           ;; boolean: is this patch part of a road?&lt;br /&gt;
  is-intersection?   ;; boolean: is this patch an intersection?&lt;br /&gt;
  lane-direction     ;; forced heading: 0, 90, 180, 270, or -1 if intersection&lt;br /&gt;
  traffic-light?     ;; does this patch have a traffic light?&lt;br /&gt;
  light-state        ;; true=green, false=red&lt;br /&gt;
  has-accident?      ;; boolean: accident currently on this patch?&lt;br /&gt;
  accident-lifetime  ;; integer: how many ticks remain for this accident?&lt;br /&gt;
  road-condition     ;; 0=good, 1=bad, 2=very bad (affects accident prob)&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
breed [ cars car ]&lt;br /&gt;
cars-own [&lt;br /&gt;
  speed&lt;br /&gt;
  max-speed&lt;br /&gt;
  stopped-ticks&lt;br /&gt;
  destination        ;; patch or nobody&lt;br /&gt;
  birth-tick                 ;; store the tick when the car is created&lt;br /&gt;
  distance-traveled          ;; accumulates how far the car has moved&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  1.  SETUP                                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup&lt;br /&gt;
  clear-all&lt;br /&gt;
&lt;br /&gt;
  ;; Initialize stats&lt;br /&gt;
  set total-cars-reached-destination 0&lt;br /&gt;
  set total-cars-accident 0&lt;br /&gt;
  set accident-count 0&lt;br /&gt;
  set average-speed 0&lt;br /&gt;
  set average-congestion 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-travel-time 0&lt;br /&gt;
  set count-completed-cars 0&lt;br /&gt;
  set average-travel-time 0&lt;br /&gt;
  &lt;br /&gt;
  set accident-count-good 0&lt;br /&gt;
  set accident-count-bad 0&lt;br /&gt;
  set accident-count-very-bad 0&lt;br /&gt;
  &lt;br /&gt;
  set sum-time-until-accident 0&lt;br /&gt;
  set sum-distance-until-accident 0&lt;br /&gt;
  set average-time-until-accident 0&lt;br /&gt;
  set average-distance-until-accident 0&lt;br /&gt;
&lt;br /&gt;
  setup-roads&lt;br /&gt;
  setup-intersections&lt;br /&gt;
  setup-traffic-lights&lt;br /&gt;
  setup-road-conditions&lt;br /&gt;
  &lt;br /&gt;
  reset-ticks&lt;br /&gt;
  &lt;br /&gt;
  create-initial-cars&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  2.  CREATE ROADS (TWO LANE, ONE-WAY)                        ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-roads&lt;br /&gt;
  ask patches [&lt;br /&gt;
    set is-road? false&lt;br /&gt;
    set is-intersection? false&lt;br /&gt;
    set traffic-light? false&lt;br /&gt;
    set light-state false&lt;br /&gt;
    set has-accident? false&lt;br /&gt;
    set accident-lifetime 0&lt;br /&gt;
    set lane-direction 0&lt;br /&gt;
    set road-condition 0&lt;br /&gt;
    set pcolor green&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; 2-lane roads in x or y dimension&lt;br /&gt;
  let road-patches patches with [&lt;br /&gt;
    (abs pxcor mod road-spacing &amp;lt;= 1) or&lt;br /&gt;
    (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    set is-road? true&lt;br /&gt;
    set pcolor grey&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Assign forced lane headings for non-intersection road patches&lt;br /&gt;
  ask road-patches [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; purely vertical lane: pick 0 or 180&lt;br /&gt;
    if (x-road? and not y-road?) [&lt;br /&gt;
      ifelse (pxcor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 0   ]   ;; &amp;quot;northbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 180 ]   ;; &amp;quot;southbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; purely horizontal lane: pick 90 or 270&lt;br /&gt;
    if (y-road? and not x-road?) [&lt;br /&gt;
      ifelse (pycor mod 2 = 0)&lt;br /&gt;
        [ set lane-direction 90  ]   ;; &amp;quot;eastbound&amp;quot;&lt;br /&gt;
        [ set lane-direction 270 ]   ;; &amp;quot;westbound&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  3.  INTERSECTIONS                                           ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-intersections&lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let x-road? (abs pxcor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
    let y-road? (abs pycor mod road-spacing &amp;lt;= 1)&lt;br /&gt;
&lt;br /&gt;
    ;; Intersection = patch that is both x-road &amp;amp; y-road&lt;br /&gt;
    if (x-road? and y-road?) [&lt;br /&gt;
      set is-intersection? true&lt;br /&gt;
      set pcolor yellow&lt;br /&gt;
      set lane-direction -1   ;; means &amp;quot;all directions possible here&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  4.  TRAFFIC LIGHTS                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ;; Turn on lights at each intersection&lt;br /&gt;
    ask patches with [is-intersection?] [&lt;br /&gt;
      set traffic-light? true&lt;br /&gt;
      set light-state true&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  5.  ROAD CONDITIONS                                         ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to setup-road-conditions&lt;br /&gt;
  let sum-prob (good-road-probability + bad-road-probability)&lt;br /&gt;
  &lt;br /&gt;
  ask patches with [is-road?] [&lt;br /&gt;
    let r random-float 1&lt;br /&gt;
    &lt;br /&gt;
    ifelse (r &amp;lt; good-road-probability) [&lt;br /&gt;
      ;; (1) &amp;quot;Good&amp;quot; road&lt;br /&gt;
      set road-condition 0&lt;br /&gt;
      set pcolor grey&lt;br /&gt;
      &lt;br /&gt;
    ] [&lt;br /&gt;
      ifelse (r &amp;lt; sum-prob) [&lt;br /&gt;
        ;; (2) &amp;quot;Bad&amp;quot; road&lt;br /&gt;
        set road-condition 1&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
        &lt;br /&gt;
        ;; 5% chance to become &amp;quot;Very Bad&amp;quot; instead:&lt;br /&gt;
        if random-float 1 &amp;lt; 0.05 [&lt;br /&gt;
          set road-condition 2&lt;br /&gt;
          set pcolor orange&lt;br /&gt;
        ]&lt;br /&gt;
        &lt;br /&gt;
      ] [&lt;br /&gt;
        &lt;br /&gt;
        set road-condition 0&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  6.  CREATE INITIAL CARS                                     ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to create-initial-cars&lt;br /&gt;
  ask cars [ die ]  ;; remove any old cars&lt;br /&gt;
&lt;br /&gt;
  let valid-starts patches with [&lt;br /&gt;
    is-road? and&lt;br /&gt;
    not has-accident? and&lt;br /&gt;
    not any? cars-here&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  if not any? valid-starts [&lt;br /&gt;
    user-message &amp;quot;No valid road patches for car creation!&amp;quot;&lt;br /&gt;
    stop&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  create-cars min list number-of-cars (count valid-starts) [&lt;br /&gt;
    set shape &amp;quot;car&amp;quot;&lt;br /&gt;
    set color blue&lt;br /&gt;
    set size 0.8&lt;br /&gt;
&lt;br /&gt;
    ;; pick a random road patch&lt;br /&gt;
    let start-patch one-of valid-starts&lt;br /&gt;
    move-to start-patch&lt;br /&gt;
    set valid-starts valid-starts with [self != start-patch]&lt;br /&gt;
&lt;br /&gt;
    ;; If this patch is an intersection =&amp;gt; pick a direction&lt;br /&gt;
    ifelse ([lane-direction] of patch-here = -1)&lt;br /&gt;
      [ set heading one-of [0 90 180 270] ]&lt;br /&gt;
      [ set heading [lane-direction] of patch-here ]&lt;br /&gt;
&lt;br /&gt;
    set speed 0&lt;br /&gt;
    set max-speed base-speed&lt;br /&gt;
    set stopped-ticks 0&lt;br /&gt;
    set destination nobody&lt;br /&gt;
    set distance-traveled 0&lt;br /&gt;
    set birth-tick ticks&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  7.  GO (MAIN LOOP)                                          ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to go&lt;br /&gt;
  if not any? cars [ stop ]&lt;br /&gt;
&lt;br /&gt;
  update-traffic-lights&lt;br /&gt;
  move-cars&lt;br /&gt;
  check-accidents&lt;br /&gt;
  clear-old-accidents&lt;br /&gt;
  update-statistics&lt;br /&gt;
&lt;br /&gt;
  tick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  8.  UPDATE TRAFFIC LIGHTS                                   ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-traffic-lights&lt;br /&gt;
  if traffic-lights? [&lt;br /&gt;
    ask patches with [is-intersection? and traffic-light?] [&lt;br /&gt;
      ;; simple toggle every 30 ticks&lt;br /&gt;
      if (ticks mod 30 = 0) [&lt;br /&gt;
        set light-state not light-state&lt;br /&gt;
        set pcolor ifelse-value light-state [green] [red]&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;  9.  MOVE CARS                                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to move-cars&lt;br /&gt;
  ask cars [&lt;br /&gt;
    ;; Force lane direction&lt;br /&gt;
    let patch-lane [lane-direction] of patch-here&lt;br /&gt;
&lt;br /&gt;
    ifelse patch-lane = -1 [&lt;br /&gt;
      ;; intersection =&amp;gt; pick a new direction each tick or once&lt;br /&gt;
      set heading one-of [0 90 180 270]&lt;br /&gt;
    ] &lt;br /&gt;
    [&lt;br /&gt;
      ;; normal lane =&amp;gt; enforce that heading&lt;br /&gt;
      set heading patch-lane&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Decide if it's safe to move&lt;br /&gt;
    let safe-to-move? true&lt;br /&gt;
&lt;br /&gt;
    ;; Check traffic light&lt;br /&gt;
    if [traffic-light?] of patch-here [&lt;br /&gt;
      if not ([light-state] of patch-here) [&lt;br /&gt;
        set safe-to-move? false&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;; Check for cars ahead in same lane&lt;br /&gt;
    if any? cars-on patch-ahead 1 [&lt;br /&gt;
      set safe-to-move? false&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    ;;  Move or slow&lt;br /&gt;
    ifelse safe-to-move? [&lt;br /&gt;
      set speed min (list (speed + 0.1) max-speed)&lt;br /&gt;
      forward speed&lt;br /&gt;
      set distance-traveled distance-traveled + speed&lt;br /&gt;
      set stopped-ticks 0&lt;br /&gt;
    ] [&lt;br /&gt;
      set speed max (list (speed - 0.2) 0)&lt;br /&gt;
      set stopped-ticks (stopped-ticks + 1)&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
 ;; if the car leaves the grid:&lt;br /&gt;
    if not is-patch? patch-here [&lt;br /&gt;
      &lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      &lt;br /&gt;
      ;;  Add to sum-travel-time:&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
&lt;br /&gt;
      ;; Then die&lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    if (max-pxcor - abs xcor) &amp;lt; 1 or (max-pycor - abs ycor) &amp;lt; 1 [&lt;br /&gt;
      set total-cars-reached-destination (total-cars-reached-destination + 1)&lt;br /&gt;
&lt;br /&gt;
      set count-completed-cars (count-completed-cars + 1)&lt;br /&gt;
      set sum-travel-time (sum-travel-time + (ticks - birth-tick))&lt;br /&gt;
      &lt;br /&gt;
      die&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 10.  ACCIDENT LOGIC (EXPANDED)                               ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to check-accidents&lt;br /&gt;
  ;; For each car, compute probability of an accident&lt;br /&gt;
  ask cars [&lt;br /&gt;
    if random-float 1 &amp;lt; calculate-accident-probability self [&lt;br /&gt;
      create-accident self&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to-report calculate-accident-probability [ c ]&lt;br /&gt;
  ;; Base accident probability from driver error&lt;br /&gt;
  let base (driver-error-rate * 0.00025)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Find the patch under turtle c (using c's pxcor, pycor)&lt;br /&gt;
  let p patch ([pxcor] of c) ([pycor] of c)&lt;br /&gt;
  &lt;br /&gt;
  ;;  Road condition effect&lt;br /&gt;
  if [road-condition] of p = 1 [&lt;br /&gt;
    set base (base * 2)&lt;br /&gt;
  ]&lt;br /&gt;
  if [road-condition] of p = 2 [&lt;br /&gt;
    set base (base * 2.6)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Speed factor&lt;br /&gt;
  let speed-ratio ([speed] of c / [max-speed] of c)&lt;br /&gt;
  set base (base * (speed-ratio + 0.1))   ;; +0.1 so even slow cars have some chance&lt;br /&gt;
  &lt;br /&gt;
  ;; Congestion effect: how many other cars are within radius 1.5 of c&lt;br /&gt;
  let nearby-cars count cars with [ distance c &amp;lt; 1.5 ]&lt;br /&gt;
  set base (base + (nearby-cars * 0.0005))&lt;br /&gt;
  &lt;br /&gt;
  ;;  Intersection effect&lt;br /&gt;
  if [is-intersection?] of p [&lt;br /&gt;
    set base (base * 1.5)&lt;br /&gt;
  ]&lt;br /&gt;
  &lt;br /&gt;
  ;; Cap at 1% (0.01) to avoid extreme probabilities&lt;br /&gt;
  report min (list base 0.1)&lt;br /&gt;
  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to create-accident [ c ]&lt;br /&gt;
  set accident-count (accident-count + 1)&lt;br /&gt;
  set total-cars-accident (total-cars-accident + 1)&lt;br /&gt;
&lt;br /&gt;
  ;; Mark the patch&lt;br /&gt;
  let px ([pxcor] of c)&lt;br /&gt;
  let py ([pycor] of c)&lt;br /&gt;
  ask patch px py [&lt;br /&gt;
    set has-accident? true&lt;br /&gt;
    set pcolor red&lt;br /&gt;
    set accident-lifetime accident-duration&lt;br /&gt;
&lt;br /&gt;
    ;; Accidents by Road Condition:&lt;br /&gt;
    if (road-condition = 0) [ set accident-count-good (accident-count-good + 1) ]&lt;br /&gt;
    if (road-condition = 1) [ set accident-count-bad (accident-count-bad + 1) ]&lt;br /&gt;
    if (road-condition = 2) [ set accident-count-very-bad (accident-count-very-bad + 1) ]&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  ;; Time &amp;amp; Distance to Accident:&lt;br /&gt;
  let time-until-accident (ticks - [birth-tick] of c)&lt;br /&gt;
  let dist-until-accident ([distance-traveled] of c)&lt;br /&gt;
  set sum-time-until-accident (sum-time-until-accident + time-until-accident)&lt;br /&gt;
  set sum-distance-until-accident (sum-distance-until-accident + dist-until-accident)&lt;br /&gt;
&lt;br /&gt;
  ;; kill the car&lt;br /&gt;
  ask c [ die ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
to clear-old-accidents&lt;br /&gt;
  ;; Decrement accident-lifetime. When it hits 0, clear the patch.&lt;br /&gt;
  ask patches with [has-accident?] [&lt;br /&gt;
    set accident-lifetime (accident-lifetime - 1)&lt;br /&gt;
    if (accident-lifetime &amp;lt;= 0) [&lt;br /&gt;
      set has-accident? false&lt;br /&gt;
      ;; restore color based on road-condition&lt;br /&gt;
      if (road-condition = 0) [&lt;br /&gt;
        set pcolor grey&lt;br /&gt;
      ] &lt;br /&gt;
      if (road-condition = 1) [&lt;br /&gt;
        set pcolor (grey - 2)&lt;br /&gt;
      ]&lt;br /&gt;
      if (road-condition = 2) [&lt;br /&gt;
        set pcolor orange&lt;br /&gt;
      ]&lt;br /&gt;
    ]&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;; 11.  STATISTICS &amp;amp; PLOTS                                      ;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
to update-statistics&lt;br /&gt;
  let car-count count cars&lt;br /&gt;
  let total-speed 0&lt;br /&gt;
&lt;br /&gt;
  if car-count &amp;gt; 0 [&lt;br /&gt;
    set total-speed sum [speed] of cars&lt;br /&gt;
    set average-speed (total-speed / car-count)&lt;br /&gt;
  ] &lt;br /&gt;
  if car-count = 0 [&lt;br /&gt;
    set average-speed 0&lt;br /&gt;
  ]&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  set average-congestion count cars with [&lt;br /&gt;
    (stopped-ticks &amp;gt;= 2) and (any? cars-on patch-ahead 1)&lt;br /&gt;
  ]&lt;br /&gt;
   if number-of-cars &amp;gt; 0 [&lt;br /&gt;
    set accident-percentage ((accident-count / number-of-cars) * 100)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Average travel time for cars that completed trip&lt;br /&gt;
  if count-completed-cars &amp;gt; 0 [&lt;br /&gt;
    set average-travel-time (sum-travel-time / count-completed-cars)&lt;br /&gt;
  ]&lt;br /&gt;
  ;;Averages for time &amp;amp; distance until accident&lt;br /&gt;
  if accident-count &amp;gt; 0 [&lt;br /&gt;
    set average-time-until-accident (sum-time-until-accident / accident-count)&lt;br /&gt;
    set average-distance-until-accident (sum-distance-until-accident / accident-count)&lt;br /&gt;
  ]&lt;br /&gt;
  ;; Plot them&lt;br /&gt;
  carefully [&lt;br /&gt;
    set-current-plot &amp;quot;Average Speed&amp;quot;&lt;br /&gt;
    plot average-speed&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Total Accidents&amp;quot;&lt;br /&gt;
    plot accident-count&lt;br /&gt;
&lt;br /&gt;
    set-current-plot &amp;quot;Average Congestion&amp;quot;&lt;br /&gt;
    plot average-congestion&lt;br /&gt;
  ] []&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26353</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26353"/>
		<updated>2025-01-10T19:16:35Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Because there are 100 cars with a fairly high driver-error-rate (0.05), multiple accidents occurred (10 total). However, they tended to happen later in the simulation (average time until accident over 300 ticks).&lt;br /&gt;
Most cars (90 out of 100) still reached their destination—likely because accident-duration is very short (1 tick), so blocked patches quickly returned to normal.&lt;br /&gt;
The relatively high base speed (0.8) also increased mobility, helping more cars finish faster, but also contributed to a moderate accident rate.&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Fewer cars (50), but also a much lower base speed (0.3), so cars move more slowly—leading to a higher average travel time (over 200 ticks).&lt;br /&gt;
Because driver-error-rate is only 0.01 (lower chance of human error) and 70% roads are good, only 3 accidents occurred.&lt;br /&gt;
Even with slow speed, many cars still took a long time to finish, as shown by the high travel time. Almost all cars managed to complete or crash within the time frame, with 47 successful arrivals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
Compared to the second screenshot, the big difference is accident-duration = 90 (very long).&lt;br /&gt;
Even though speed is still 0.3 and the road condition/distribution is the same, the accident count has climbed to 13, and 16% of the cars ended up in accidents.&lt;br /&gt;
Because accidents last 90 ticks on a patch, any collision severely disrupts traffic, likely forcing more cars to queue or collide.&lt;br /&gt;
Despite that, 67 cars did manage to exit, though the blocked patches would have contributed to higher accident numbers and more emergent congestion.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26352</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26352"/>
		<updated>2025-01-10T19:14:05Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:ModerateDensity_timm03.png&amp;diff=26351</id>
		<title>File:ModerateDensity timm03.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:ModerateDensity_timm03.png&amp;diff=26351"/>
		<updated>2025-01-10T19:12:40Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:LowDensity_timm03.png&amp;diff=26349</id>
		<title>File:LowDensity timm03.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:LowDensity_timm03.png&amp;diff=26349"/>
		<updated>2025-01-10T19:11:56Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:HighDensity_timm03.png&amp;diff=26348</id>
		<title>File:HighDensity timm03.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:HighDensity_timm03.png&amp;diff=26348"/>
		<updated>2025-01-10T19:11:44Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26347</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26347"/>
		<updated>2025-01-10T19:11:23Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Density, Poor Roads===&lt;br /&gt;
&lt;br /&gt;
[[File:HighDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
=== Low Density, Strict Limits===&lt;br /&gt;
&lt;br /&gt;
[[File:LowDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
=== Moderate Density, Extended Accident Duration===&lt;br /&gt;
&lt;br /&gt;
[[File:ModerateDensity_timm03.png]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Interface_timm03.png&amp;diff=26341</id>
		<title>File:Interface timm03.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Interface_timm03.png&amp;diff=26341"/>
		<updated>2025-01-10T18:49:18Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26339</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26339"/>
		<updated>2025-01-10T18:48:58Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: /* Interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
[[File:Interface_timm03.png]]&lt;br /&gt;
Early experiments show that:&lt;br /&gt;
&lt;br /&gt;
Increasing driver-error-rate or worsening road conditions leads to higher accident counts.&lt;br /&gt;
&lt;br /&gt;
Intersections with complex geometry or multiple lanes see disproportionate spikes in accidents, aligning with research on urban intersection hazards (Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Overall traffic flow slows when accidents block segments for a set duration.&lt;br /&gt;
&lt;br /&gt;
Moreover, cross-cultural studies highlight that perceived risk and willingness to comply with regulations vary significantly by region, implying the simulation’s parameters may need adjusting for local contexts (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26338</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26338"/>
		<updated>2025-01-10T18:48:36Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: /* Interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
[[File:Interface.png]]&lt;br /&gt;
Early experiments show that:&lt;br /&gt;
&lt;br /&gt;
Increasing driver-error-rate or worsening road conditions leads to higher accident counts.&lt;br /&gt;
&lt;br /&gt;
Intersections with complex geometry or multiple lanes see disproportionate spikes in accidents, aligning with research on urban intersection hazards (Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Overall traffic flow slows when accidents block segments for a set duration.&lt;br /&gt;
&lt;br /&gt;
Moreover, cross-cultural studies highlight that perceived risk and willingness to comply with regulations vary significantly by region, implying the simulation’s parameters may need adjusting for local contexts (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26337</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26337"/>
		<updated>2025-01-10T18:47:45Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
Early experiments show that:&lt;br /&gt;
&lt;br /&gt;
Increasing driver-error-rate or worsening road conditions leads to higher accident counts.&lt;br /&gt;
&lt;br /&gt;
Intersections with complex geometry or multiple lanes see disproportionate spikes in accidents, aligning with research on urban intersection hazards (Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Overall traffic flow slows when accidents block segments for a set duration.&lt;br /&gt;
&lt;br /&gt;
Moreover, cross-cultural studies highlight that perceived risk and willingness to comply with regulations vary significantly by region, implying the simulation’s parameters may need adjusting for local contexts (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26336</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26336"/>
		<updated>2025-01-10T18:47:18Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
Early experiments show that:&lt;br /&gt;
&lt;br /&gt;
Increasing driver-error-rate or worsening road conditions leads to higher accident counts.&lt;br /&gt;
&lt;br /&gt;
Intersections with complex geometry or multiple lanes see disproportionate spikes in accidents, aligning with research on urban intersection hazards (Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Overall traffic flow slows when accidents block segments for a set duration.&lt;br /&gt;
&lt;br /&gt;
Moreover, cross-cultural studies highlight that perceived risk and willingness to comply with regulations vary significantly by region, implying the simulation’s parameters may need adjusting for local contexts (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26333</id>
		<title>Traffic Accident Risk Analysis</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Traffic_Accident_Risk_Analysis&amp;diff=26333"/>
		<updated>2025-01-10T18:46:10Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: Created page with &amp;quot;== Introduction == This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and drive...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page introduces a NetLogo-based simulation that models traffic accident risk. The goal is to understand how road conditions, traffic density, and driver behavior intertwine to create or mitigate accidents. Various research sources underscore the need for a systematic approach to traffic safety, illustrating how driver reliability, infrastructure, and cultural factors shape accident outcomes (Sadauskas, 2011; Gstalter &amp;amp; Fastenmeier, 2010; TSK Praha, 2020; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Definition of the Problem ==&lt;br /&gt;
Road traffic accidents remain a pressing public health challenge, especially with the steady growth in vehicle numbers worldwide (Sadauskas, 2011). This proliferation escalates the likelihood of collisions, injuries, and fatalities. A robust traffic safety strategy thus necessitates examining:&lt;br /&gt;
&lt;br /&gt;
Road conditions (from good to very bad).&lt;br /&gt;
&lt;br /&gt;
Driver behavior and risk homeostasis (adjusting behavior based on perceived safety).&lt;br /&gt;
&lt;br /&gt;
Environmental and societal factors that influence compliance with safety rules (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Moreover, the complexity of urban intersections can amplify error rates, as drivers face higher cognitive loads and multiple conflict points (Gstalter &amp;amp; Fastenmeier, 2010). In city contexts, baseline accident rates still vary considerably depending on infrastructure, as seen in real-world data (TSK Praha, 2020).&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
A systematic approach to traffic safety integrates engineering, enforcement, and education — often referred to as the “Triple E” (Sadauskas, 2011):&lt;br /&gt;
&lt;br /&gt;
Engineering: Vehicle and road design improvements (e.g., signage, intersections, lighting).&lt;br /&gt;
&lt;br /&gt;
Education: Public awareness, driver training programs targeting risk perception and behavior.&lt;br /&gt;
&lt;br /&gt;
Enforcement: Legal measures (speed limits, penalties) ensuring compliance with traffic rules.&lt;br /&gt;
&lt;br /&gt;
Human Reliability Analysis (HRA) has also been adapted to driving tasks to quantify driver error probabilities at intersections (Gstalter &amp;amp; Fastenmeier, 2010). By defining “correct” driver actions and measuring deviations, one can estimate how road geometry, age, and psycho-social factors alter driver reliability.&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
This simulation uses NetLogo to create a grid of patches representing:&lt;br /&gt;
&lt;br /&gt;
Road segments: Assigned good, bad, or very bad condition.&lt;br /&gt;
&lt;br /&gt;
Intersections: Potentially with traffic lights.&lt;br /&gt;
&lt;br /&gt;
Cars (turtles): Move according to lane rules and can trigger accidents based on speed, congestion, and driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Key points:&lt;br /&gt;
&lt;br /&gt;
Accident Probability: Derived from a base driver-error-rate, amplified by intersection complexity, road condition, and local traffic density (Gstalter &amp;amp; Fastenmeier, 2010; Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
Baseline Rates: Inspired by real accident data (e.g., TSK Praha’s ročenka dopravy or Accident risks of different weather conditions) (TSK Praha, 2020) (Malin 2017).&lt;br /&gt;
&lt;br /&gt;
Systematic Approach: Reflects suggestions for engineering (road condition logic), education (driver-error slider), and enforcement (speed constraints) in modeling different scenarios (Sadauskas, 2011).&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
Early experiments show that:&lt;br /&gt;
&lt;br /&gt;
Increasing driver-error-rate or worsening road conditions leads to higher accident counts.&lt;br /&gt;
&lt;br /&gt;
Intersections with complex geometry or multiple lanes see disproportionate spikes in accidents, aligning with research on urban intersection hazards (Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Overall traffic flow slows when accidents block segments for a set duration.&lt;br /&gt;
&lt;br /&gt;
Moreover, cross-cultural studies highlight that perceived risk and willingness to comply with regulations vary significantly by region, implying the simulation’s parameters may need adjusting for local contexts (Nordfjærn et al., 2011).&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
A coherent strategy to minimize road accidents must blend:&lt;br /&gt;
&lt;br /&gt;
Infrastructure improvements: Fewer “very bad” road patches.&lt;br /&gt;
&lt;br /&gt;
Driver education: Lower driver-error-rate.&lt;br /&gt;
&lt;br /&gt;
Smart enforcement: Speed limits, traffic lights, as recommended by international studies on traffic safety (Sadauskas, 2011; Nordfjærn et al., 2011; Gstalter &amp;amp; Fastenmeier, 2010).&lt;br /&gt;
&lt;br /&gt;
Our NetLogo model offers a flexible testbed for exploring how each factor contributes to — or mitigates — traffic accidents. Real-world calibration data (e.g., from TSK Praha) can refine the baseline accident probabilities, enabling more realistic scenario testing.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
Below is the NetLogo code implementing the simulation structure (patch definitions, accident logic, congestion metrics, etc.). Users can copy and paste it into a NetLogo environment to run their own experiments. For a complete listing, see the setup, go, and supporting procedures:&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
 Sadauskas, V. (2011). ''Traffic safety strategies'', Transport, 18(2), 79–83. DOI: 10.1080/16483840.2003.10414070 &lt;br /&gt;
&lt;br /&gt;
 Gstalter, H., &amp;amp; Fastenmeier, W. (2010). ''Reliability of drivers in urban intersections.'' Accident Analysis &amp;amp; Prevention, 42(1), 225–234. [https://doi.org/10.1016/j.aap.2009.07.021 Link] &lt;br /&gt;
&lt;br /&gt;
 TSK Praha (2020). ''Ročenka dopravy – 2020.'' [https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_01.html Link] &lt;br /&gt;
&lt;br /&gt;
 Nordfjærn, T., Jørgensen, S., &amp;amp; Rundmo, T. (2011). ''A cross-cultural comparison of road traffic risk perceptions, attitudes towards traffic safety, and driver behaviour.'' Journal of Risk Research, 14(6), 657–684. [https://doi.org/10.1080/13669877.2010.547259 Link] &lt;br /&gt;
&lt;br /&gt;
 Fanny Malin (2017). ''Accident risks in different weather conditions.'' [https://nordicroads.com/accident-risks-different-weather-conditions/?utm_source=chatgpt.com Link]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=WS_2024/2025&amp;diff=26324</id>
		<title>WS 2024/2025</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=WS_2024/2025&amp;diff=26324"/>
		<updated>2025-01-10T18:36:57Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Semestral papers from winter term 2023/2024. Please, put here links to the pages with your paper. First you need to have your [[Assignments WS 2024/2025|assignment approved]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simulations==&lt;br /&gt;
&lt;br /&gt;
--[[User:Filip Simulátor|Filip Simulátor]] ([[User talk:Filip Simulátor|talk]]) 21:37, 3 January 2025 (CET) Lightning Network Channel Dynamics Simulation (NetLogo): [[Lightning Network Channel Dynamics Simulation (NetLogo)]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Matj27|Matj27]] ([[User talk:Matj27|talk]]) 16:06, 2 January 2025 (CET) Performance of Solar Power Plant Based on ERA5 Data: [[Performance of Solar Power Plant Based on ERA5 Data]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Cesj05|Cesj05]] ([[User talk:Cesj05|talk]]) 11:05, 1 January 2025 (CET) Garden simulation:[[Garden simulation]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Tara04|Tara04]] ([[User talk:Tara04|talk]]) 20:24, 9 January 2025 (CET) Hybrid Work Dynamics: [[Hybrid Work Dynamics]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Omaj01|Omaj01]] ([[User talk:Omaj01|talk]]) 20:55, 9 January 2025 (CET) Simulation of pension reform in the Czech Republic: Analysis of long-term sustainability: [[Pension System Czech Republic]]&lt;br /&gt;
&lt;br /&gt;
-- [[User:Sim timm03|Sim timm03]] ([[User talk:Sim timm03|talk]]) 19:36, 10 January 2025 (CET) Traffic Accident Risk Analysis: [[Traffic Accident Risk Analysis]]&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Assignments_WS_2024/2025&amp;diff=26097</id>
		<title>Assignments WS 2024/2025</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Assignments_WS_2024/2025&amp;diff=26097"/>
		<updated>2024-12-07T15:11:52Z</updated>

		<summary type="html">&lt;p&gt;Sim timm03: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, put here your assignments. Do not forget to sign them. You can use &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; (four tildas) for an automatic signature. Use Show preview in order to check the result before your final sumbition.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Please, strive to formulate your assignment carefully. We expect an adequate effort to formulate the assignment as it is your semestral paper. Do not forget that your main goal is a research paper. It means your simulation model must generate the results that are specific, measurable and verifiable. Think twice how you will develop your model, which entities you will use, draw a model diagram, consider what you will measure. No sooner than when you have a good idea about the model, submit your assignment. And of course, read [[How to deal with the simulation assignment|How to deal with the simulation assignment]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Topics on gambling, cards, etc. are not welcome.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
In order to avoid possible confusion, please, check if you have added '''approved''' in bold somewhere in our comment under your submission. If there is no '''approved''', it means the assignment was not approved yet.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ambox&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
'''Criteria for evaluation of the simulation proposal'''&lt;br /&gt;
&lt;br /&gt;
The proposal must contain:&lt;br /&gt;
*What you will simulate&lt;br /&gt;
*The goal of the simulation (what you analyze - i.e. not &amp;quot;to simulate balloon factory&amp;quot;, but what problem should the simulation solve).&lt;br /&gt;
*Who would actually use such simulation (example of such user) and how would it help him&lt;br /&gt;
*What method and simulation environment you plan to use. Choose only from the development environments that we have used in the course.&lt;br /&gt;
*What variables will be incorporated&lt;br /&gt;
*What variables will be random&lt;br /&gt;
*What exact data you will base values of your variables on&lt;br /&gt;
*(In case of Monte Carlo) What exact data you will base your determination of probability distribution of your random variables on&lt;br /&gt;
*What exact data you will base your formulas in the simulation (simulation behavior) on &lt;br /&gt;
&lt;br /&gt;
'''If any of the above points are missing from the simulation proposal, the proposal is considered incomplete. Unless the proposal contains all of the above points it will not be evaluated at all (and therefore cannot be approved).'''&lt;br /&gt;
&lt;br /&gt;
# Is it clear from the proposed assignment how the simulation will work?&lt;br /&gt;
# Does the simulation make sense?&lt;br /&gt;
# Is the simulation model complex enough to simulate credibly the real-world phenomenon that the simulation tries to simulate?&lt;br /&gt;
# Is the data used real and relevant for the real-world phenomenon that the simulation tries to simulate?&lt;br /&gt;
# Is the simulation feasible? (in given time by the course)&lt;br /&gt;
&lt;br /&gt;
'''If the answer to any of the above points is no, you need to improve your proposal. Don't wait for us to tell you so - you're wasting your time.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Assignment Proposal (Draft) Title:'''&lt;br /&gt;
*Simulation of pension reform in the Czech Republic: Analysis of long-term sustainability&lt;br /&gt;
&lt;br /&gt;
'''What will be simulated:'''&lt;br /&gt;
*A system dynamics model of the Czech pension system that simulates the long-term financial sustainability under varying demographic, economic, and policy scenarios. The simulation will project future balances of the pension system, incorporating the flows of revenues (social insurance contributions) and expenditures (pension payouts)&lt;br /&gt;
&lt;br /&gt;
'''Goal of the simulation (What problem should the simulation solve):'''&lt;br /&gt;
*The main goal is to analyze how different pension reform strategies (e.g., adjusting retirement age, altering contribution rates, changing the indexation formula of pensions) will affect the long-term stability of the Czech pension system. The simulation aims to identify specific policy levers and thresholds that ensure the pension system’s financial equilibrium over a multi-decade horizon, despite changing demographic and economic conditions.&lt;br /&gt;
&lt;br /&gt;
'''Who would use the simulation and how it helps them:'''&lt;br /&gt;
*The potential users include not only the Ministry of Finance, the Ministry of Labour and Social Affairs, but also the general public and the media. Although the model does not simulate the pension system in complete detail, it provides a general overview and helps users understand the basic mechanisms and trends that will shape the future of the pension system. In this way, users can:&lt;br /&gt;
**Gain a preliminary orientation and inspiration: By experimenting with simple scenarios (e.g., raising the retirement age or altering contribution rates), users can gain a clearer picture of how different reform steps could influence the stability of the pension system.&lt;br /&gt;
**Provide context for public debate: The model can assist citizens, journalists, and non-profit organizations in better understanding the issues surrounding pension reform. This allows them to critically evaluate political proposals or expert recommendations.&lt;br /&gt;
**Lead to more informed decision-making: While this is not a tool for detailed macroeconomic forecasting, the simulation provides a general insight into potential long-term trends. This can contribute to a broader understanding of the necessity for reforms and their impact on future generations.&lt;br /&gt;
&lt;br /&gt;
'''Method and simulation environment:'''&lt;br /&gt;
&lt;br /&gt;
*Method: System Dynamics&lt;br /&gt;
*Simulation environment: Vensim PLE (freely available for academic use)&lt;br /&gt;
&lt;br /&gt;
'''Variables in the model (deterministic and random):'''&lt;br /&gt;
&lt;br /&gt;
*Core Population Variables:&lt;br /&gt;
**Number of children (new entrants to future workforce)&lt;br /&gt;
**Number of working-age population (workers contributing to the system)&lt;br /&gt;
**Number of pensioners (beneficiaries)&lt;br /&gt;
&lt;br /&gt;
*Policy Variables:&lt;br /&gt;
**Statutory retirement age&lt;br /&gt;
**Contribution rate to social insurance (percentage of wage)&lt;br /&gt;
**Pension benefit formula and indexation mechanism&lt;br /&gt;
&lt;br /&gt;
*Economic Variables:&lt;br /&gt;
**Average wage (influences contributions)&lt;br /&gt;
**Inflation rate (influences indexation of pensions and wage growth)&lt;br /&gt;
&lt;br /&gt;
*Fiscal Variables:&lt;br /&gt;
**Total contributions collected (based on number of workers, contribution rate, and average wage)&lt;br /&gt;
**Total pension expenditure (based on number of pensioners and average pension)&lt;br /&gt;
**Pension system reserve fund (if applicable) and its depletion or accumulation&lt;br /&gt;
&lt;br /&gt;
*Random Variables:&lt;br /&gt;
**The model will incorporate stochastic elements through probability distributions derived from historical data and OECD/EUROSTAT projections to reflect uncertainty in:&lt;br /&gt;
***Fertility rate (affects future workforce size; random from projected distribution)&lt;br /&gt;
***Mortality rate / Life expectancy changes (stochastic variation around central OECD forecasts)&lt;br /&gt;
***Inflation rate (stochastic variation around central forecast from CNB/OECD data)&lt;br /&gt;
***Retirement rate (number of people retire each year +-)&lt;br /&gt;
&lt;br /&gt;
'''Data sources (for deterministic baseline and to derive distributions):'''&lt;br /&gt;
*Czech Statistical Office (ČSÚ) for historical demographic data&lt;br /&gt;
*OECD demographic and economic projections for Czech Republic&lt;br /&gt;
*Eurostat long-term demographic projections for EU countries&lt;br /&gt;
&lt;br /&gt;
'''Formulas in the simulation (examples):'''&lt;br /&gt;
*Pension Expenditure: Total Pension Expenditure = Number of Pensioners * Average Pension&lt;br /&gt;
*Average Pension Calculation: Average Pension(t+1) = Average Pension(t) * (1 + InflationIndex)&lt;br /&gt;
*Contribution Revenue: Total Contributions = Number of Workers * Average Wage * Contribution Rate&lt;br /&gt;
*System Balance: Annual Balance = Total Contributions - Total Pension Expenditure&lt;br /&gt;
*Accumulation or depletion of the pension reserve fund is then modeled as a stock: Reserve(t+1) = Reserve(t) + Annual Balance.&lt;br /&gt;
&lt;br /&gt;
'''Model complexity and data linking:'''&lt;br /&gt;
*'''Causal loop diagrams (CLD):''' Will illustrate feedback loops such as how employment and wage growth influence contributions, and how demographic changes influence the ratio of workers to retirees.&lt;br /&gt;
*'''Stock and Flow Diagrams:''' Will detail population stocks (children, workers, retirees), and financial stocks (pension fund reserves), along with flows (entrants to workforce, retirees, death rates, pension contributions, and payouts).&lt;br /&gt;
&lt;br /&gt;
'''Specific, measurable, and verifiable results:'''&lt;br /&gt;
*Specificity: The model will project the pension system’s financial status from year X to year X+50 under various reform scenarios, providing exact quantitative outcomes (e.g., fund balance in billions CZK, pension-to-wage ratio).&lt;br /&gt;
&lt;br /&gt;
*Measurable metrics:&lt;br /&gt;
**Dependency ratio (number of pensioners per 100 workers)&lt;br /&gt;
**Pension system annual balance (CZK) and cumulative reserves over time&lt;br /&gt;
**Average replacement rate (pension/average wage ratio)&lt;br /&gt;
**Sensitivity of sustainability gap to changes in retirement age or contribution rate&lt;br /&gt;
&lt;br /&gt;
*Verifiability: The initial model run will be calibrated against historical data for the past decade. Adjustments to parameters and comparison with known OECD and ČSÚ forecasts will verify the model’s credibility.&lt;br /&gt;
&lt;br /&gt;
[[User:Omaj01|Omaj01]] ([[User talk:Omaj01|talk]])&lt;br /&gt;
::'''APPROVED'''[[User:Oleg.Svatos|Oleg.Svatos]] ([[User talk:Oleg.Svatos|talk]]) 17:57, 6 December 2024 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Simulation concept – Invasive Plant Species vs. Native Plants vs. Herbivores Jan César (cesj05) '''&lt;br /&gt;
&lt;br /&gt;
''' Objectives: '''&lt;br /&gt;
&lt;br /&gt;
Understand the dynamics of competition between invasive plant species and native plants in a shared environment&lt;br /&gt;
&lt;br /&gt;
Explore the conditions under which either the invasive species dominates, coexists, or fails to establish.&lt;br /&gt;
&lt;br /&gt;
''' Environment: '''&lt;br /&gt;
&lt;br /&gt;
Each patch represents a piece of land that can grow either a natrive or invasive plant (or remain empty)&lt;br /&gt;
&lt;br /&gt;
Plants compete for resources on each path&lt;br /&gt;
&lt;br /&gt;
''' Agents: '''&lt;br /&gt;
&lt;br /&gt;
Native Plants: Slower growth but more resistant to herbivores or harsh conditions.&lt;br /&gt;
&lt;br /&gt;
Invasive Plants: Faster growth and higher seed dispersal rate but less resistant to herbivores.&lt;br /&gt;
&lt;br /&gt;
Herbivores: Agents that eat plants, with a preference for invasive or native species (modifiable by the user).&lt;br /&gt;
&lt;br /&gt;
''' Methods '''&lt;br /&gt;
&lt;br /&gt;
Initialization:&lt;br /&gt;
&lt;br /&gt;
Randomly populate the grid with a mix of invasive and native plants.&lt;br /&gt;
&lt;br /&gt;
Set up resource levels for each patch.&lt;br /&gt;
&lt;br /&gt;
Place herbivores randomly across the grid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Simulation Steps (Turtles/Agents): '''&lt;br /&gt;
&lt;br /&gt;
Each plant (agent) checks:&lt;br /&gt;
&lt;br /&gt;
Whether it has resources to grow or reproduce.&lt;br /&gt;
&lt;br /&gt;
If conditions are favorable, it spreads seeds to nearby patches.&lt;br /&gt;
&lt;br /&gt;
Herbivores move and consume plants on the patches they visit.&lt;br /&gt;
&lt;br /&gt;
Competition between plants on shared patches determines which survives.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Interaction Dynamics: Modify the probability of herbivory or the effectiveness of seed dispersal as sliders to explore different scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The simulation will be done in NetLogo, as for the data, it will not be used from real world, but it will be set up, so the behaviour of agents will be as close as it can to real life.&lt;br /&gt;
&lt;br /&gt;
Used studies for setting up the behaviour of plants and herbivores will be: &lt;br /&gt;
https://www.mdpi.com/1424-2818/16/6/317&lt;br /&gt;
https://academic.oup.com/jpe/article/17/2/rtae007/7589693&lt;br /&gt;
&lt;br /&gt;
If needed, more studies will be used.&lt;br /&gt;
&lt;br /&gt;
This simulation can be used by gardeners trying to maintain their garden.   [[User:Cesj05|Cesj05]] ([[User talk:Cesj05|talk]]) 17:53, 6 December 2024 (CET)&lt;br /&gt;
----&lt;br /&gt;
== Simulation Concept – Traffic Accident Risk Analysis ==&lt;br /&gt;
&lt;br /&gt;
=== Objectives ===&lt;br /&gt;
* Understand the dynamics of traffic accidents based on road conditions, traffic density, and driver behavior.&lt;br /&gt;
* Explore the conditions under which accidents become frequent, and how they impact overall traffic flow.&lt;br /&gt;
* Test mitigation strategies like improved road quality or stricter speed limits.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
* '''Patches''': Represent road segments and intersections, each with a defined condition:&lt;br /&gt;
** '''Good''': Low accident probability.&lt;br /&gt;
** '''Bad''': Increased accident probability.&lt;br /&gt;
** '''Under Construction''': High accident probability and slower movement for cars.&lt;br /&gt;
* '''Road Network''': A grid-based layout with straight roads and intersections where traffic can flow.&lt;br /&gt;
&lt;br /&gt;
=== Agents ===&lt;br /&gt;
# '''Cars (Turtles):'''&lt;br /&gt;
## Each car has a speed, a destination, and a probability of making a driving error.&lt;br /&gt;
## Movement is influenced by traffic density and road conditions.&lt;br /&gt;
# '''Accidents:'''&lt;br /&gt;
## Simulated as blocked road segments.&lt;br /&gt;
## Cause delays and force cars to reroute.&lt;br /&gt;
# '''Traffic Lights (Optional):'''&lt;br /&gt;
## Located at intersections to control flow.&lt;br /&gt;
## Can be toggled on/off to explore their impact on accidents.&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
==== Initialization ====&lt;br /&gt;
* Randomly distribute cars across the road network with initial speeds and destinations.&lt;br /&gt;
* Assign random conditions (good, bad, under construction) to road segments based on user input.&lt;br /&gt;
&lt;br /&gt;
==== Simulation Steps (Turtles/Agents) ====&lt;br /&gt;
# '''Movement:'''&lt;br /&gt;
## Cars follow road segments, moving faster on good roads and slower on bad/under-construction ones.&lt;br /&gt;
# '''Accident Risk:'''&lt;br /&gt;
## Probability of an accident increases with:&lt;br /&gt;
### Poor road conditions.&lt;br /&gt;
### High speed.&lt;br /&gt;
### High traffic density.&lt;br /&gt;
# '''Accident Handling:'''&lt;br /&gt;
## If an accident occurs, the road segment is temporarily blocked.&lt;br /&gt;
## Cars reroute to avoid the blocked segment, increasing congestion elsewhere.&lt;br /&gt;
# '''Recovery:'''&lt;br /&gt;
## Accidents are cleared after a set duration, restoring traffic flow.&lt;br /&gt;
&lt;br /&gt;
==== Interaction Dynamics ====&lt;br /&gt;
* '''User Controls:'''&lt;br /&gt;
** Traffic density, road condition distribution, speed limits, and driver error probabilities can be adjusted with sliders.&lt;br /&gt;
* '''Scenarios:'''&lt;br /&gt;
** Test high traffic density with poor roads versus low traffic density with good roads.&lt;br /&gt;
** Simulate stricter traffic laws by reducing driver errors and imposing speed limits.&lt;br /&gt;
&lt;br /&gt;
=== Simulation Details ===&lt;br /&gt;
* '''Platform''': NetLogo.&lt;br /&gt;
* '''Data Source''': Synthetic data will be used to mimic real-world traffic dynamics based on studies and assumptions.&lt;br /&gt;
* '''Behavior Setup''': Modeled on findings from traffic and safety research:&lt;br /&gt;
** [https://www.tandfonline.com/doi/full/10.1080/13669877.2010.547259 Study 1]&lt;br /&gt;
** [https://www.tandfonline.com/doi/pdf/10.1080/23311916.2020.1834659 Study 2]&lt;br /&gt;
** [https://www.tandfonline.com/doi/pdf/10.1080/16483840.2003.10414070 Study 3]&lt;br /&gt;
* Additional studies will be incorporated if needed to refine parameters.&lt;br /&gt;
[[User:Sim timm03|Sim timm03]] ([[User talk:Sim timm03|talk]]) 16:11, 7 December 2024 (CET)&lt;/div&gt;</summary>
		<author><name>Sim timm03</name></author>
		
	</entry>
</feed>