static void TestDistributionsToFile()
        {
            GeneratorSeed seed    = new GeneratorSeed();
            int           numbers = 1000000;

            using (System.IO.StreamWriter file =
                       new System.IO.StreamWriter(@"exponencionalne_test_data.txt"))
            {
                ExponencionalDistribution ex = new ExponencionalDistribution(seed.GetRandomSeed(), 6);

                for (int i = 0; i < numbers; i++)
                {
                    file.WriteLine((ex.GenerateDouble().ToString().Replace(',', '.')) + "\t");
                }
            }

            //using (System.IO.StreamWriter file =
            //new System.IO.StreamWriter(@"diskretne_test_data.txt"))
            //{
            //    UniformDiscreteDistribution ex = new UniformDiscreteDistribution(seed.GetRandomSeed(), 3,6);

            //    for (int i = 0; i < numbers; i++)
            //    {
            //        file.WriteLine((ex.GenerateDouble().ToString().Replace(',', '.')) + "\t");
            //    }
            //}
        }
Beispiel #2
0
        public AutoserviceGenerators()
        {
            var seed = new GeneratorSeed();

            _gen1 = new ExponencionalDistribution(seed.GetRandomSeed(), 300);
            _gen2 = new DiscreteEmpiricalDistribution(seed, new[]
            {
                new Duration(1, 1, 0.4), new Duration(2, 2, 0.15), new Duration(3, 3, 0.14), new Duration(4, 4, 0.12),
                new Duration(5, 5, 0.1), new Duration(6, 6, 0.09)
            });

            _gen3 = new UniformContinuousDistribution(seed.GetRandomSeed(), 70, 310);
            _gen4 = new UniformContinuousDistribution(seed.GetRandomSeed(), 80, 160);
            _gen5 = new TriangleUniformDistribution(seed.GetRandomSeed(), 120, 540, 240);
            _gen6 = new UniformContinuousDistribution(seed.GetRandomSeed(), 123, 257);
            _gen7 = new DiscreteEmpiricalDistribution(seed, new[]
            {
                new Duration(0, 0, 0.7), new Duration(0, 0, 0.2), new Duration(0, 0, 0.1)
            }, new IGenerators[]
            {
                new UniformDiscreteDistribution(seed.GetRandomSeed(), 2, 20),
                new DiscreteEmpiricalDistribution(seed,
                                                  new[] { new Duration(10, 40, 0.1), new Duration(41, 61, 0.6), new Duration(62, 100, 0.3) }),
                new UniformDiscreteDistribution(seed.GetRandomSeed(), 120, 260)
            });
        }
        private static void generator1(GeneratorSeed seed)
        {
            //prud zakaznikov prichadzaujucich do autoservisu je poissonovsky prud s intenzitou
            //z == 12 zakaznikov za hodinu
            //modelujem exp.rozdelenim => 300 s
            var ex300 = new ExponencionalDistribution(seed.GetRandomSeed(), 300);

            TestDistributionsToFileDouble(ex300, "generator_1_exp_300.dst");
        }
Beispiel #4
0
        public AutoserviceGenerators(int gen1,
                                     double gen213,
                                     double gen223,
                                     double gen233,
                                     double gen243,
                                     double gen253,
                                     double gen263,
                                     int gen31, int gen32,
                                     int gen41, int gen42,
                                     int gen51, int gen52, int gen53,
                                     int gen61, int gen62,
                                     double gen71, double gen72, double gen73,
                                     int gen711, int gen712,
                                     int gen721, int gen722, double gen723,
                                     int gen731, int gen732, double gen733,
                                     int gen741, int gen742, double gen743,
                                     int gen751, int gen752
                                     )
        {
            var seed = new GeneratorSeed();

            _gen1 = new ExponencionalDistribution(seed.GetRandomSeed(), gen1);
            _gen2 = new DiscreteEmpiricalDistribution(seed, new[]
            {
                new Duration(1, 1, gen213),
                new Duration(2, 2, gen223),
                new Duration(3, 3, gen233),
                new Duration(4, 4, gen243),
                new Duration(5, 5, gen253),
                new Duration(6, 6, gen263)
            });

            _gen3 = new UniformContinuousDistribution(seed.GetRandomSeed(), gen31, gen32);
            _gen4 = new UniformContinuousDistribution(seed.GetRandomSeed(), gen41, gen42);
            _gen5 = new TriangleUniformDistribution(seed.GetRandomSeed(), gen51, gen52, gen53);
            _gen6 = new UniformContinuousDistribution(seed.GetRandomSeed(), gen61, gen62);
            _gen7 = new DiscreteEmpiricalDistribution(seed, new[]
            {
                new Duration(0, 0, gen71), new Duration(0, 0, gen72), new Duration(0, 0, gen73)
            }, new IGenerators[]
            {
                new UniformDiscreteDistribution(seed.GetRandomSeed(), gen711, gen712),
                new DiscreteEmpiricalDistribution(seed,
                                                  new[]
                {
                    new Duration(gen721, gen722, gen723), new Duration(gen731, gen732, gen733),
                    new Duration(gen741, gen742, gen743)
                }),
                new UniformDiscreteDistribution(seed.GetRandomSeed(), gen751, gen752)
            });
        }
        protected SimCoreShop(double maxTime)
        {
            IsServed     = false;
            WaitingQueue = new Queue <Customer>();
            //statistics
            NumberOfCustomers = 0;
            TotalWaitingTime  = 0;
            LastCount         = -1;
            _iteration        = 0;
            LengthOfFront     = 0;
            LastChangedTime   = 0;

            GeneratorSeed seed = new GeneratorSeed();
            //Mo
            ExponencionalDistribution d1 = new ExponencionalDistribution(seed.GetRandomSeed(), 5);
            //Mp
            ExponencionalDistribution d2 = new ExponencionalDistribution(seed.GetRandomSeed(), 6);

            Generators = new[] { d1, d2 };
        }
        public SimCoreShop(double exp1, double exp2)
        {
            GeneratorSeed seed = new GeneratorSeed();
            //Mo
            ExponencionalDistribution d1 = new ExponencionalDistribution(seed.GetRandomSeed(), exp1);
            //Mp
            ExponencionalDistribution d2 = new ExponencionalDistribution(seed.GetRandomSeed(), exp2);

            IGenerators[] generatorses = { d1, d2 };

            this.Generators = generatorses;
            IsServed        = false;
            WaitingQueue    = new Queue <Customer>();
            //statistics
            NumberOfCustomers = 0;
            TotalWaitingTime  = 0;
            LastCount         = -1;
            _iteration        = 0;
            LengthOfFront     = 0;
            LastChangedTime   = 0;
        }