Ejemplo n.º 1
0
        private void SetRandom()
        {
            random = new Random();

            // Choose erdosRenyiModelProbabilityEnum
            if (erdosRenyiModelProbabilityEnum == ErdosRenyiModelProbabilityEnum.notAssigned)
            {
                erdosRenyiModelProbabilityEnum = (ErdosRenyiModelProbabilityEnum)random.Next(Enum.GetNames(typeof(ErdosRenyiModelProbabilityEnum)).Length - 1);
            }

            switch (erdosRenyiModelProbabilityEnum)
            {
            case ErdosRenyiModelProbabilityEnum.cDividedByNLessThanOne:
                probability = random.Next(10000, 99999) / countVertices;
                break;

            case ErdosRenyiModelProbabilityEnum.cDividedByNMoreThanOne:
                probability = random.Next(100000, 300000) / countVertices;
                break;

            case ErdosRenyiModelProbabilityEnum.cLogNDividedByN:
                probability = (int)(random.Next(100000, 600000) * Math.Log(countVertices) / countVertices);
                break;

            default:
                throw new MyException.GenerateGraphException.ErdosReneiModelProbabilityEnumMissing(erdosRenyiModelProbabilityEnum.ToString());
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// If count of vertices is less than 1 throws GraphInvalidCountVerticesException
        /// </summary>
        /// <param name="countVertices">count of vertices</param>
        /// <param name="erdosRenyiModelProbabilityEnum">probability attribute - deafult = notAssigned</param>
        public ErdosRenyiModel(int countVertices, ErdosRenyiModelProbabilityEnum erdosRenyiModelProbabilityEnum = ErdosRenyiModelProbabilityEnum.notAssigned)
        {
            SetCountVertices(countVertices);
            this.erdosRenyiModelProbabilityEnum = erdosRenyiModelProbabilityEnum;
            usedVerticesHashSet = new HashSet <Graph.IVertexInterface>();

            // Create graph
            graph = new Graph.GraphEdgeList(countVertices);
            graph.SetName(GRAPHNAME);
            graph.FullGenerateVertices();
            graph.InitializeGraph();

            // Set random
            SetRandom();
        }