Loading pdg-cooperation-simulator.nlogo +48 −44 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -1377,8 +1366,8 @@ end GRAPHICS-WINDOW 190 60 258 129 398 269 -1 -1 20.0 Loading @@ -1392,9 +1381,9 @@ GRAPHICS-WINDOW 0 1 0 2 9 0 2 9 1 1 1 Loading Loading @@ -1427,7 +1416,7 @@ initial-cooperation initial-cooperation 0 1 0.9 0.8 0.01 1 NIL Loading @@ -1442,7 +1431,7 @@ initial-ws initial-ws 3 20 4.0 10.0 1 1 NIL Loading Loading @@ -1498,7 +1487,7 @@ mean-value-productivity mean-value-productivity 2.1 5 3.0 2.8 0.05 1 NIL Loading @@ -1513,7 +1502,7 @@ std-deviation-productivity std-deviation-productivity 0.05 0.5 0.0 0.1 0.01 1 NIL Loading Loading @@ -1543,7 +1532,7 @@ std-deviation-stress-limit std-deviation-stress-limit 1 10 1.0 5.0 1 1 NIL Loading Loading @@ -1573,7 +1562,7 @@ stress-regen stress-regen 0.01 0.2 0.045 0.02 0.001 1 NIL Loading Loading @@ -1639,7 +1628,7 @@ boss-reaction-time 10 100 30.0 1 5 1 NIL HORIZONTAL Loading @@ -1654,7 +1643,7 @@ performance-lower-limit 25 80 50.0 1 5 1 % HORIZONTAL Loading @@ -1669,7 +1658,7 @@ performance-upper-limit 110 300 200.0 1 10 1 % HORIZONTAL Loading @@ -1683,7 +1672,7 @@ boss-insight-performance boss-insight-performance 0 1 0.75 1.0 0.01 1 NIL Loading Loading @@ -1717,7 +1706,7 @@ tft-npm-peace-probability tft-npm-peace-probability 0 1 0.2 0.1 0.01 1 NIL Loading Loading @@ -1768,7 +1757,7 @@ sum-generated-vs-cooperation sum-generated-vs-cooperation 0 1 0.75 0.5 0.01 1 NIL Loading Loading @@ -1824,7 +1813,7 @@ boss-insight-cooperation boss-insight-cooperation 0 1 0.75 1.0 0.01 1 NIL Loading Loading @@ -2005,7 +1994,7 @@ minimal-budget minimal-budget 0 1 0.3 1.0 0.1 1 NIL Loading Loading @@ -2046,7 +2035,7 @@ penalisation-for-fluctuation penalisation-for-fluctuation 0 12 50.0 12.0 1 1 NIL Loading Loading @@ -2093,7 +2082,7 @@ wiring-prob wiring-prob 0 1 0.15 0.1 0.01 1 NIL Loading @@ -2108,7 +2097,7 @@ rewiring-probability rewiring-probability 0 1 0.15 0.1 0.01 1 NIL Loading Loading @@ -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 Loading Loading
pdg-cooperation-simulator.nlogo +48 −44 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -1377,8 +1366,8 @@ end GRAPHICS-WINDOW 190 60 258 129 398 269 -1 -1 20.0 Loading @@ -1392,9 +1381,9 @@ GRAPHICS-WINDOW 0 1 0 2 9 0 2 9 1 1 1 Loading Loading @@ -1427,7 +1416,7 @@ initial-cooperation initial-cooperation 0 1 0.9 0.8 0.01 1 NIL Loading @@ -1442,7 +1431,7 @@ initial-ws initial-ws 3 20 4.0 10.0 1 1 NIL Loading Loading @@ -1498,7 +1487,7 @@ mean-value-productivity mean-value-productivity 2.1 5 3.0 2.8 0.05 1 NIL Loading @@ -1513,7 +1502,7 @@ std-deviation-productivity std-deviation-productivity 0.05 0.5 0.0 0.1 0.01 1 NIL Loading Loading @@ -1543,7 +1532,7 @@ std-deviation-stress-limit std-deviation-stress-limit 1 10 1.0 5.0 1 1 NIL Loading Loading @@ -1573,7 +1562,7 @@ stress-regen stress-regen 0.01 0.2 0.045 0.02 0.001 1 NIL Loading Loading @@ -1639,7 +1628,7 @@ boss-reaction-time 10 100 30.0 1 5 1 NIL HORIZONTAL Loading @@ -1654,7 +1643,7 @@ performance-lower-limit 25 80 50.0 1 5 1 % HORIZONTAL Loading @@ -1669,7 +1658,7 @@ performance-upper-limit 110 300 200.0 1 10 1 % HORIZONTAL Loading @@ -1683,7 +1672,7 @@ boss-insight-performance boss-insight-performance 0 1 0.75 1.0 0.01 1 NIL Loading Loading @@ -1717,7 +1706,7 @@ tft-npm-peace-probability tft-npm-peace-probability 0 1 0.2 0.1 0.01 1 NIL Loading Loading @@ -1768,7 +1757,7 @@ sum-generated-vs-cooperation sum-generated-vs-cooperation 0 1 0.75 0.5 0.01 1 NIL Loading Loading @@ -1824,7 +1813,7 @@ boss-insight-cooperation boss-insight-cooperation 0 1 0.75 1.0 0.01 1 NIL Loading Loading @@ -2005,7 +1994,7 @@ minimal-budget minimal-budget 0 1 0.3 1.0 0.1 1 NIL Loading Loading @@ -2046,7 +2035,7 @@ penalisation-for-fluctuation penalisation-for-fluctuation 0 12 50.0 12.0 1 1 NIL Loading Loading @@ -2093,7 +2082,7 @@ wiring-prob wiring-prob 0 1 0.15 0.1 0.01 1 NIL Loading @@ -2108,7 +2097,7 @@ rewiring-probability rewiring-probability 0 1 0.15 0.1 0.01 1 NIL Loading Loading @@ -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 Loading