Introduction

  • March’s paper, 1991 was to investigate how the activities and processes of exploration and exploitation affect organizational learning performance. March’s paper concluded that the sub-optimal equilibrium solutions can be obtained by the trade-off between exploratory and exploitative activities under limited resources constraints.

  • In this simulation tasks , we are interested in two research areas:

    • Case 1 is to study how the socialization rate and learning rate affect the equilibrium knowledge of performance.

    • Case 2 is to study how the personal turnover rate and learning rate affect the equilibrium knowledge of performance.

  • The main tasks are to replicate two result cases (mentioned above) of March’s paper, 1991 by simulation. The simulation model script (written with R) we used, was originally created by Maciej Workiewicz (ESSEC) on August 10, 2017. Because of coding errors present, we have done simple coding modification directly from Maciej’s model script.

Basic variables and defintitions from Maciej’s model script:

  • Number of iteration = \(iterations\)
  • Number of dimensions = \(m\)
  • Number of people = \(n\)
  • Time to reach equilibrium performance = \(time\)
  • Socialisation Rate = \(p_1\)
  • Learning Rate = \(p_2\)
  • Personal Turnover Rate = \(p_3\)
  • Environmental Turbulence Rate = \(p_4\)

One function call from Maciej’s model script: “getvote”

  • getvote is the function call to compute the collective decision making by summing up all individual’s votes with and without superior knowledge.
  • getvote sets a rule below:
    • without superior knowledge (beliefs \(= 0\)), individuals have no right to vote; and the zero belief should not be counted.
    • with superior knowledge (beliefs \(\neq 0\)), individuals have the right to vote; and the non-zero belief should be counted.
  • Therefore, averaging all the individuals who have non-zero beliefs is a way to mimic and reflect the collective decision-making for internally exogenous factors (like personal turnovers) or externally exogenous factors (like environmental turbulence).

Simulation’s Results and Discussion

Case I

Case I

Case I

  • Figure 1 is the simulation plot run with Maciej’s model script with which the run-time is approximately 25 minutes by using the following parameters setting:

    • iterations = 100 ; m = 20; n = 100 ; time = 200
    • \(p_1\) = matrix (0.5, nrow=n) ; \(p_2\) = 0.5 ; \(p_3\) = 0 ; \(p_4\) = 0
    • P1_list = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
    • P2_list = c(0.1, 0.3, 0.6, 0.9)
  • The Figure 1 simulation is to investigate the joint-effect impacts of socialization rate(P1) and learning rate(P2) on the equilibrium knowledge of performance. This simulation assumes that

    • personal turnover rate and environmental turbulence have no effect on equilibrium knowledge of performance; and
    • socialization rate and learning rate are homogeneous through out all individuals.
  • This simulation indicates that

    • For a fixed socialization rate, the higher rates of learning, the faster to reach at the equilibrium point of knowledge earlier through adaptive process at individual level. Because slow learning rate from individuals is to maintain diversity longer, and enhance the exploration for technological innovation that allows the knowledge found in the organizational code to improve.

    • For a fixed learning rate, the slower the socialization rate, the greater the equilibrium knowledge is, particularly when the fixed learning rate is at higher level.

    • Each sub-optimal equilibrium points (knowlege of performance) is generated by the trade-off between exploratory and exploitative activities under limited resources constraints.

  • Our simulation results (Figure 1) run with Maciej’s model script is roughly inlined with the Figure 1 of March’s paper under homogeneity setting in both socialization rate and learning rate.

Case 2

Case 2

Case 2

  • Figure 2 is to the simulation plot run with Maciej’s model script with which the run-time is approximately 20 minutes by using the following parameters setting:

    • iterations = 100 ; m = 20; n = 100 ; time = 100
    • \(p_3\) = matrix (P3_list, nrow=n) ; \(p_2\) = P2_list ; \(p_4\) = 0
    • P3_list = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
    • P1_list = c(0.1, 0.9)
    • P2_list = 0.6
  • The Figure 2 simulation is to investigate the joint-effect impacts of socialization rate (P1) and personal turnover rate(P3) on the equilibrium knowledge of performance. This simulation assumes that

    • environmental turbulence has no effect on equilibrium knowledge of performance;
    • socialization rate and personal turnover rate are homogeneous through out all individuals; and
    • learning rate keep fixed and set to be 0.6.
  • This simulation indicates that

    • For a relatively low socialisation rate, it declines with increasing personal turnover rate under an open system, leading inadequate exploitative activities, hence facilitating to shift more activities to exploration process.

    • For a sufficiently high socialisation rate (P1), it would moderate the growth of personal turnover rate(P3) and also retard the exploration process under an open system at the early stage due to a strong personal socialisation network. However, when new staff are recruited to replace the resigned staffs, then the original socialisation network and organisational norms and codes of practices are more diversified, enhancing the personal turnover rate again. This is a positive feedback mechanism to accelerate the fast drop-down of equilibrium knowledge with the incremental personal turnover rate provided that socialisation rate is sufficiently high.

  • The positive feedback mechanism generated by personal turnover rate in our simulation (Figure 2) run with Maciej’s model script is roughly inlined with the Figure 4 of March’s paper. This positive feedback mechanism (personal turnover rate) is diffused very faster under sufficient high socialisation rate (social contagion).

Limitations

  • Because the time resource is limited, it is not possible to replicate all results from March’s paper. We decides to run simulation for two cases only. For the rest of results from March’s paper, it has a high potential for further simulation and verification provided that a sufficient time resource is available for re-coding the Maciej’s model scripts.

  • Because of coding errors present in the “turnover” part of Maciej’s model script, it gets error bugs when \(p_3 > 0\), if \(m\neq n\). To fix this bug, it is simply to “transpose” the original “belief matrix” in the “turnover” part only. Then it is possible to simulate the personal turnover effects by setting the column vector parameter of \(p_3\) as

\[\begin{equation*} p_3 = \mathrm{matrix (P3\_Rate, nrow=n),\quad where\quad P3\_Rate } \in [0, 1]. \end{equation*}\]

Conclusion

  • Our simulations (Figure 1 & Figure 2) for case 1 & 2 run with Maciej’s model script are roughly inlined with the Figure 1 & 4 of March’s paper.

  • Case 1 simulation result suggests that

    • For a fixed socialization rate, the higher rates of learning, the faster to reach at the equilibrium point of knowledge earlier through adaptive process at individual level.

    • For a fixed learning rate, the slower the socialization rate, the greater the equilibrium knowledge is, particularly when the fixed learning rate is at higher level.

    • Each sub-optimal equilibrium points (knowlege of performance) is generated by the trade-off between exploratory and exploitative activities under limited resources constraints.

  • Case 2 simulation result suggests that personal turnover rate has a positive feedback effect to accelerate the fast drop-down of equilibrium knowledge with the incremental personal turnover rate provided that socialisation rate is sufficiently high. This positive feedback mechanism (personal turnover rate) is diffused very fast under sufficient high socialisation rate (social contagion).

Apprendix: Maciej’s model script

Maciej’s model script on March (1991)

p1 = matrix(0.5, nrow = n)
p2 = 0.5
p3 = 0
p4 = 0

Parmeter space for the learning rates

P1_list <- c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
P2_list <- c(0.1, 0.5, 0.9)

Create output matrix

  • counter for recording rows in the OUTPUT file = c_p1
  • counter to report progress = scenario
OUTPUT = matrix(0, nrow = length(P1_list), ncol = length(P2_list))
c_p1 <- 0
scenario <- 0

Simulation

for (p1 in P1_list) {
    c_p1 <- c_p1 + 1
    c_p2 <- 0
    for (p2 in P2_list) {
        c_p2 <- c_p2 + 1
        scenario <- scenario + 1
        for (i in 1:iterations) {
            cat("\r", "Scenario: ", toString(scenario), " out of ", toString(length(P1_list) *
                length(P2_list)), ", iteration: ", toString(i))

            # Generating starting objects
            external_reality <- 2 * (floor(runif(m, min = 0, max = 2))) - 1
            beliefs <- matrix(floor(runif(n * m, min = -1, max = 2)), nrow = n, ncol = m)
            org_code <- numeric(m)

            for (t in 1:time) {
                # turnover =====
                for (x3 in 1:n) {
                  if (runif(1) < p3) {
                    beliefs[x3, ] <- t(matrix(floor(runif(m, min = -1, max = 2)),
                      nrow = m))
                  }
                }

                # environmental turbulence =====
                for (x4 in 1:m) {
                  if (runif(1) < p4) {
                    external_reality[x4] <- external_reality[x4] * (-1)
                  }
                }

                # socialization ======
                for (n_ in 1:n) {
                  for (m_ in 1:m) {
                    if (runif(1) < p1) {
                      # individuals don't learn if code is 0 [page 74, line
                      # 27:28]
                      if (org_code[m_] != 0) {
                        beliefs[n_, m_] <- org_code[m_]
                      }
                    }
                  }
                }
                # end: socialization

                # code learning ====== * choosing the chosen ones (superior
                # knowledge) ###### find out the quality of knowledge for the
                # code and individuals

                knowl_code <- sum(org_code == external_reality)
                knowl_wkrs <- numeric(n)  # vector with num of correct dimensions

                for (person in 1:n) {
                  knowl_wkrs[person] <- sum(beliefs[person, ] == external_reality)
                }

                chosen_ones <- numeric(n)  # individuals smarter than the org code
                # in the beginning pretty much all workers are better than the
                # code which has zero knowledge

                for (person in 1:n) {
                  if (knowl_code < knowl_wkrs[person]) {
                    chosen_ones[person] <- 1
                  }
                }

                # *superior matrix ######
                if (sum(chosen_ones) > 0) {
                  knowl_matrix <- matrix(0, nrow = sum(chosen_ones), ncol = m)
                  p <- 1  # counter for the superior people
                  for (person in 1:n) {
                    if (chosen_ones[person] == 1) {
                      knowl_matrix[p, ] <- beliefs[person, ]
                      p <- p + 1
                    }
                  }

                  # *learning ##### Setting up the superior group and its
                  # knowledge for the code to learn from it As per the paper,
                  # org code learns from the majority vote of superior group.
                  for (dimension in 1:m) {
                    result <- getvote(knowl_matrix[, dimension])
                    vote <- result[1]
                    k <- result[2]
                    if (runif(1) > ((1 - p2)^k)) {
                      org_code[dimension] <- vote
                    }
                  }
                }
                # end: code learning from the individuals
            }

            # recording results ====== For now a crude but working version.
            knowl_code <- sum(org_code == external_reality)
            OUTPUT[c_p1, c_p2] <- OUTPUT[c_p1, c_p2] + (knowl_code/m)
        }
    }
}


OUTPUT <- OUTPUT/iterations  # taking the average

References

March, James G. 1991. “Exploration and Exploitation in Organizational Learning.” Organization Science 2 (1): 71–87. http://www.jstor.org/stable/2634940.