public List<Distribution> ReadServerTimeDistributions()
        {
            string serversDirectory = Path.Combine(distributionsDirectory, "Servers");
            string[] filesNames = Directory.GetFiles(serversDirectory);

            var distributions = new List<Distribution>();
            foreach (var filePath in filesNames)
            {
                string[] entries = File.ReadAllLines(filePath);

                var dist = new Distribution();

                foreach (var entry in entries)
                {
                    int time = int.Parse(entry.Split(new char[] { ' ' })[0]);
                    double probability = double.Parse(entry.Split(new char[] { ' ' })[1]);

                    dist.Times.Add(time);
                    dist.Probabilities.Add(probability);
                }

                distributions.Add(dist);
            }

            return distributions;
        }
        public Distribution ReadIterarrivalDistribution()
        {
            string fileName = "IterarrivalDistribution.txt";
            string interarrivalTimeFilePath = Path.Combine(distributionsDirectory, fileName);
            string[] entries = File.ReadAllLines(interarrivalTimeFilePath);

            var dist = new Distribution();

            foreach (var entry in entries)
            {
                int time = int.Parse(entry.Split(new char[] { ' ' })[0]);
                double probability = double.Parse(entry.Split(new char[] { ' ' })[1]);

                dist.Times.Add(time);
                dist.Probabilities.Add(probability);
            }

            return dist;
        }
Exemplo n.º 3
0
        private void CalculateCumlativeDistributionAndRange(Distribution dist)
        {
            dist.CumulativeProbabilities.Add(dist.Probabilities[0]);
            dist.Ranges.Add(new KeyValuePair<int, int>(0, (int)(dist.CumulativeProbabilities[0] * 1000)));

            for (int i = 1; i < dist.Times.Count; i++)
            {
                dist.CumulativeProbabilities.Add(dist.CumulativeProbabilities[i - 1] + dist.Probabilities[i]);
                dist.Ranges.Add(new KeyValuePair<int, int>(dist.Ranges[i - 1].Value + 1, (int)(dist.CumulativeProbabilities[i] * 1000)));
            }
        }