The statistical analysis desktop application module was created on behalf of Intelligen Inc. in order to add schedule variability functionality to the SchedulePro application. The provided functionality is used by end-users and/or engineering consultants in order to perturb the production schedule and report on the probability that various KPIs fall within the desired range, thus facilitating lean six sigma process manufacturing. The module allows for randomizing the production schedule according to various random distributions and for reporting on the results. The module core is written in VC++/MFC and the reporting interfaces are written in C++/CLI and C#/Web Forms.

Functionality at a glance:

  • Allows for configuring the duration of operations in the production schedule to be determined randomly, according to a user-specified random distribution.
    • Available distributions are: Uniform, Normal, Weibull, Triangular, Gamma, Beta, Pert, and Bernoulli. The relevant interfaces allow for setting the parameters for each distribution.
    • The pseudo-random generator can be seeded either randomly (from the computer clock) or deterministically using a user-defined seed.
  • Runs a given number of trials (in a non-blocking, background thread), each producing a schedule perturbation according to the configured random operations.
    • Schedule perturbation works by traversing the schedule in user-defined time steps, setting at each time step the duration of the random operations that start during the previous interval.
    • After the completion of each trial, several measurements are collected from the perturbed schedule such as: makespan, total cost, average lateness, late batches count, and conflicts count.
    • The execution of a single trial may be visualized on an equipment occupancy chart.
Background Simulation Running
  • Reports on the produced results with the help of a frequency of occurrence histogram.
    • Allows for configuring the bucket size or the total bucket number.
    • Allows for easily calculating the probability for the outcome to lie between a low value and a high value.
    • Reports on a number of statistics such as min, max, avg, std, mode and median.
    • Allows for exporting the entire result set in csv format.
Results Reporting

Technical highlights:

  • Random number generation is implemented as a set of VC++ classes inheriting from a base class that functions as an interface. Each random number class is required to implement certain virtual methods required by the base class.
  • Clients create random number generators via a random factory that maps enum values to classes. Each random operation has a pointer to a random number generation object.
  • The random parameter settings dialog works with the base/interface class. Therefore, no interface changes are necessary when new random number class are added.
    • New distributions appears automatically in the relevant combo box and the corresponding parameters are also made automatically available to the user for editing.
  • Trials run in a background thread while reporting progress to the main thread for display purposes. The thread may be interrupted at any time saving the results that have been calculated up to that point.