Commit a1b8e9ea authored by JosefD's avatar JosefD
Browse files

unter hotfix

parent 0cafa3c9
Loading
Loading
Loading
Loading
+48 −44
Original line number Diff line number Diff line
@@ -60,13 +60,8 @@ turtles-own [
  low-performance-counter ; counts the number of periods that employee is on lower-performance-limit
  productivity      ; specifies the ability of the employee to generate money
  self-evaluation   ; it specifies the effectivity of the employee in one period given by boss-reaction-time slider
  self-evaluation-real ; specifies the real change of wage of employee in one period given by boss-reaction-time
                       ; slider. The difference with self-evaluation is that this also involves the performance
                       ; limits. E.g. if self-evaluation is 0.2, performance is 180 (and should be raised to 216),
                       ;  performance upper limit is 200, then only self-evaluation is equal to
                       ; 0.11111111 = 0.2 * 20 / 36
  wage-change       ; this represents the change of employee's wage. The wage can be increased eventhough the
                    ; self-evaluation-real is negative (if the budget is increased).
                    ; self-evaluation is negative (if the budget is increased).
  wage-change-tmp   ; stores information when wage-change is normalized

  stress-actual     ; current stress level of the employee, initially set to 0
@@ -517,6 +512,7 @@ to go
  [
    ; specify the maximum of values that were produced by the employees during one period of time
    let max-new-values max [sum-generated-value - boss-reaction-time * initial-value] of turtles
    let min-new-values min [sum-generated-value - boss-reaction-time * initial-value] of turtles
    let max-new-cooperations max [ number-of-cooperation / (number-of-cooperation + number-of-defects) ] of turtles

    ; count total number of cooperation divided by total number of interactions
@@ -529,13 +525,12 @@ to go

    ; recalculate the average of generated values
    ask turtles [
      ; normalize against maximum
      ; normalize to value 0 to 1
      let tmp-sum-coef 0
      if max-new-values > 0 [
        set tmp-sum-coef (sum-generated-value - boss-reaction-time * own-performance) / max-new-values
      ]
      if max-new-values < 0 [
        set tmp-sum-coef max-new-values / (sum-generated-value - boss-reaction-time * own-performance)
      if max-new-values - min-new-values != 0 [
        ; TODO: this should be revised if this is a correct approach
        ; the problem could arise when values are close to each other
        set tmp-sum-coef ((sum-generated-value - boss-reaction-time * initial-value) - min-new-values) / (max-new-values + min-new-values)
      ]

      let tmp-coop-coef 1
@@ -554,27 +549,21 @@ to go
    ]

    let average-self-evaluation sum [self-evaluation] of turtles / count turtles ; variable used for evaluation of employee
    let sum-of-performace-old sum [ own-performance ] of turtles
    let sum-of-performance-old sum [ own-performance ] of turtles ; used for wage change calculation
    if average-self-evaluation > 0 [
      ask turtles [
        ; change against average multiplicated by reaction
        ; result should be below zero if the agent evaluation is below average, zero if on average and above 0 when better than average
        set self-evaluation (self-evaluation / average-self-evaluation) - 1
        set own-performance-old own-performance ; remember the previous own-performance
        set own-performance own-performance + own-performance * self-evaluation ; set it to the new value based on self-evaluation
        set own-performance own-performance + own-performance * self-evaluation * boss-reaction-intensity ; set it to the new value based on self-evaluation
        let old-diff own-performance - own-performance-old ; diff between old own-performance and new one
        if own-performance > performance-upper-limit [ set own-performance performance-upper-limit ]
        if own-performance < performance-lower-limit [ set own-performance performance-lower-limit ]
        ifelse old-diff != 0
        [ ; if old diff is not zero, use rule of three (own-performance is now cut if lesser then minimum or greater then maximum
          set self-evaluation-real ((own-performance - own-performance-old) * self-evaluation) / old-diff
        ]
        [ ; otherwise use self-evaluation value
          set self-evaluation-real self-evaluation
        ]
      ]
    ]

    let sum-of-performace-new sum [ own-performance ] of turtles
    let sum-of-performance-new sum [ own-performance ] of turtles
    ask turtles [
        ; wage change depends on self-evaluation but also on budget change. Therefore, if budget grows, then wage can be higher
        ; even though new own-performance is lower than old one
@@ -1377,8 +1366,8 @@ end
GRAPHICS-WINDOW
190
60
258
129
398
269
-1
-1
20.0
@@ -1392,9 +1381,9 @@ GRAPHICS-WINDOW
0
1
0
2
9
0
2
9
1
1
1
@@ -1427,7 +1416,7 @@ initial-cooperation
initial-cooperation
0
1
0.9
0.8
0.01
1
NIL
@@ -1442,7 +1431,7 @@ initial-ws
initial-ws
3
20
4.0
10.0
1
1
NIL
@@ -1498,7 +1487,7 @@ mean-value-productivity
mean-value-productivity
2.1
5
3.0
2.8
0.05
1
NIL
@@ -1513,7 +1502,7 @@ std-deviation-productivity
std-deviation-productivity
0.05
0.5
0.0
0.1
0.01
1
NIL
@@ -1543,7 +1532,7 @@ std-deviation-stress-limit
std-deviation-stress-limit
1
10
1.0
5.0
1
1
NIL
@@ -1573,7 +1562,7 @@ stress-regen
stress-regen
0.01
0.2
0.045
0.02
0.001
1
NIL
@@ -1639,7 +1628,7 @@ boss-reaction-time
10
100
30.0
1
5
1
NIL
HORIZONTAL
@@ -1654,7 +1643,7 @@ performance-lower-limit
25
80
50.0
1
5
1
%
HORIZONTAL
@@ -1669,7 +1658,7 @@ performance-upper-limit
110
300
200.0
1
10
1
%
HORIZONTAL
@@ -1683,7 +1672,7 @@ boss-insight-performance
boss-insight-performance
0
1
0.75
1.0
0.01
1
NIL
@@ -1717,7 +1706,7 @@ tft-npm-peace-probability
tft-npm-peace-probability
0
1
0.2
0.1
0.01
1
NIL
@@ -1768,7 +1757,7 @@ sum-generated-vs-cooperation
sum-generated-vs-cooperation
0
1
0.75
0.5
0.01
1
NIL
@@ -1824,7 +1813,7 @@ boss-insight-cooperation
boss-insight-cooperation
0
1
0.75
1.0
0.01
1
NIL
@@ -2005,7 +1994,7 @@ minimal-budget
minimal-budget
0
1
0.3
1.0
0.1
1
NIL
@@ -2046,7 +2035,7 @@ penalisation-for-fluctuation
penalisation-for-fluctuation
0
12
50.0
12.0
1
1
NIL
@@ -2093,7 +2082,7 @@ wiring-prob
wiring-prob
0
1
0.15
0.1
0.01
1
NIL
@@ -2108,7 +2097,7 @@ rewiring-probability
rewiring-probability
0
1
0.15
0.1
0.01
1
NIL
@@ -2248,12 +2237,27 @@ max-effort-change
max-effort-change
0
1
0.1
0.15
0.05
1
NIL
HORIZONTAL

SLIDER
550
695
727
728
boss-reaction-intensity
boss-reaction-intensity
0
1
0.15
0.01
1
NIL
HORIZONTAL

@#$#@#$#@
# Simulating the Impact of Cooperation and Management Strategies on Stress and Economic Performance