public VaccinationSimulation(MonteCarloSettings monteCarloSettings, EventSimulationSettings eventSimulationSettings, VaccinationSettings vaccinationSettings)
            : base(monteCarloSettings, eventSimulationSettings)
        {
            VaccinSettings = vaccinationSettings;

            _afterEventObservables       = new SimulationObservable <AfterEventValues>();
            _afterReplicationObservables = new SimulationObservable <AfterReplicationValues>();
            _experimentObservables       = new SimulationObservable <DoctorsExperimentValues>();

            ExaminationGen  = new ExponentialGenerator(1d / 260);
            VaccinationGen  = new TriangularGenerator(20, 100, 75);
            RegistrationGen = new UniformGenerator(140, 220);

            WaitingGen  = new Random();
            PatientsGen = new Random();
            ArrivalGen  = new Random();

            if (VaccinSettings.DoctorsExperimentEnabled)
            {
                MCSettings.Replications = (VaccinSettings.DoctorsMax - VaccinSettings.DoctorsMin + 1) * VaccinSettings.ExperimentReplications;
                _currentDoctorsCount    = VaccinSettings.DoctorsMin;
            }

            Init();
        }
Example #2
0
        public VaccineSimulationService()
        {
            MCSettings = new MonteCarloSettings
            {
                Replications = 100
            };

            ESSettings = new EventSimulationSettings
            {
                SimulationTime = 60 * 60 * 9
            };

            VacSettings = new VaccinationSettings
            {
                RegistrationWorkers     = 5,
                ExaminationWorkers      = 6,
                VaccinationWorkers      = 3,
                Patients                = 540,
                NotCommingLowerBoundry  = 5,
                NotCommingHigherBoundry = 25
            };

            _simulation = new VaccinationSimulation(MCSettings, ESSettings, VacSettings);
        }