Example #1
0
        ///////////////////////////////////
        public SpatialZone()
        {
            ///////////////////////////////////
            // For Household Synthesis

            //censusPersonConditionals = new DiscreteCondDistribution();

            modelIncConditionals = new ModelDistribution();
            modelIncConditionals.SetDimensionName("IncomeLevel");
            modelUnivDegConditionals = new ModelDistribution();
            modelUnivDegConditionals.SetDimensionName("NumWithUnivDeg");
            modelDwellConditionals = new ModelDistribution();
            modelDwellConditionals.SetDimensionName("DwellingType");
            modelCarsConditionals = new ModelDistribution();
            modelCarsConditionals.SetDimensionName("NumOfCars");

            myDwellMarginal = new DiscreteMarginalDistribution();
            myDwellMarginal.SetDimensionName("DwellingType");

            myDwellMarginalCounts = new DiscreteMarginalDistribution();
            myDwellMarginalCounts.SetDimensionName("DwellingType");

            myCarsMarginal = new DiscreteMarginalDistribution();
            myCarsMarginal.SetDimensionName("NumOfCars");

            myPersonMarginal = new DiscreteMarginalDistribution();
            myPersonMarginal.SetDimensionName("HouseholdSize");
            ///////////////////////////////////

            ///////////////////////////////////
            // For Person Synthesis
            myHhldSize2Marginal = new DiscreteMarginalDistribution();
            myHhldSize2Marginal.SetDimensionName("HouseholdSize2");

            mySexMarginal = new DiscreteMarginalDistribution();
            mySexMarginal.SetDimensionName("Sex");

            myAgeMarginal = new DiscreteMarginalDistribution();
            myAgeMarginal.SetDimensionName("MaritalStatus");

            myEducationMarginal = new DiscreteMarginalDistribution();
            myEducationMarginal.SetDimensionName("EducationLevel");

            myAgeConditional = new DiscreteCondDistribution();
            myAgeConditional.SetDimensionName("Age");

            mySexConditional = new DiscreteCondDistribution();
            mySexConditional.SetDimensionName("Sex");

            myHhldSizeConditional = new DiscreteCondDistribution();
            myHhldSizeConditional.SetDimensionName("HouseholdSize2");

            myEduLevelConditional = new DiscreteCondDistribution();
            myEduLevelConditional.SetDimensionName("EducationLevel");
        }
Example #2
0
        public Household GetNextAgent(ModelDistribution g_x, 
            string dimension, Household prvAgent, SpatialZone currZone)
        {
            StateGenerator currStateGen = new StateGenerator();
            currStateGen.SetParameters(currZone.GetAverageIncome(),
                                            currZone.GetAverageIncome() * 2);
            double q_previous;
            double q_current = 0.00;
            double expIncome = Math.Log(prvAgent.GetIncome());
            KeyValDoublePair currPair = new KeyValDoublePair();
            //start with mean value
            currPair.Category = currStateGen.GetMean();
            currPair.Val = currStateGen.GetTransitionProbablity(currPair.Category);

            for (int i = 0; i < Constants.WARMUP_ITERATIONS; i++)
            {
                q_previous = currStateGen.GetTransitionProbablity(
                               Math.Log((double)prvAgent.GetIncome()));
                q_current = currPair.Val;
                IncomeLevel prevLvl = IncomeConvertor.ConvertValueToLevel(
                                        (uint) Math.Exp(expIncome));
                IncomeLevel currLvl = IncomeConvertor.ConvertValueToLevel(
                                        (uint) Math.Exp(currPair.Category));
                double b_prev = g_x.GetValue(dimension, prevLvl.ToString(),
                    prvAgent.GetNewJointKey(dimension), currZone);
                double b_curr = g_x.GetValue(dimension, currLvl.ToString(),
                    prvAgent.GetNewJointKey(dimension), currZone);
                if (b_prev == 0.00)
                    b_prev = 0.0000001;
                if (b_curr == 0.00)
                    b_curr = 0.0000001;
                if (q_current == 0.00)
                    q_current = 0.0000001;
                double comVal = (b_curr * q_previous) / (b_prev * q_current);
                if (comVal == 0.00)
                    comVal = 0.0000001;
                if (randGen.NextDouble() < comVal)
                {
                    expIncome = currPair.Category;
                }
                currPair = currStateGen.GetNextState();
            }
            return prvAgent.CreateNewCopy((uint)Math.Exp(expIncome));
        }
Example #3
0
        ///////////////////////////////////
        public SpatialZone()
        {
            ///////////////////////////////////
            // For Household Synthesis

            //censusPersonConditionals = new DiscreteCondDistribution();

            modelIncConditionals = new ModelDistribution();
            modelIncConditionals.SetDimensionName("IncomeLevel");
            modelUnivDegConditionals = new ModelDistribution();
            modelUnivDegConditionals.SetDimensionName("NumWithUnivDeg");
            modelDwellConditionals = new ModelDistribution();
            modelDwellConditionals.SetDimensionName("DwellingType");
            modelCarsConditionals = new ModelDistribution();
            modelCarsConditionals.SetDimensionName("NumOfCars");
            modelNumberOfPeopleConditionals = new ModelDistribution();
            modelNumberOfPeopleConditionals.SetDimensionName("NumOfPeople");
            modelKidsConditionals = new ModelDistribution();
            modelKidsConditionals.SetDimensionName("NumOfKids");
            modelHouseHoldTypeConditionals = new ModelDistribution();
            modelHouseHoldTypeConditionals.SetDimensionName("HouseholdSize");

            myDwellMarginal = new DiscreteMarginalDistribution();
            myDwellMarginal.SetDimensionName("DwellingType");

            myDwellMarginalCounts = new DiscreteMarginalDistribution();
            myDwellMarginalCounts.SetDimensionName("DwellingType");

            myCarsMarginal = new DiscreteMarginalDistribution();
            myCarsMarginal.SetDimensionName("NumOfCars");

            myPersonMarginal = new DiscreteMarginalDistribution();
            myPersonMarginal.SetDimensionName("HouseholdSize");
            ///////////////////////////////////

            ///////////////////////////////////
            // For Person Synthesis
               /* modelPublicTransitConditionals = new ModelDistribution();
            modelPublicTransitConditionals.SetDimensionName("PublicTransitPass");*/

            myHhldSize2Marginal = new DiscreteMarginalDistribution();
            myHhldSize2Marginal.SetDimensionName("HouseholdSize2");

            mySexMarginal = new DiscreteMarginalDistribution();
            mySexMarginal.SetDimensionName("Sex");

            myAgeMarginal = new DiscreteMarginalDistribution();
            myAgeMarginal.SetDimensionName("Age");

            myEducationMarginal = new DiscreteMarginalDistribution();
            myEducationMarginal.SetDimensionName("EducationLevel");

            myOccupationMarginal = new DiscreteMarginalDistribution();
            myOccupationMarginal.SetDimensionName("Occupation");

            myAgeConditional = new DiscreteCondDistribution();
            myAgeConditional.SetDimensionName("Age");

            mySexConditional = new DiscreteCondDistribution();
            mySexConditional.SetDimensionName("Sex");

            myHhldSizeConditional = new DiscreteCondDistribution();
            myHhldSizeConditional.SetDimensionName("HouseholdSize2");

            myEduLevelConditional = new DiscreteCondDistribution();
            myEduLevelConditional.SetDimensionName("EducationLevel");

            modelAgeConditionals = new ModelDistribution();//
            modelAgeConditionals.SetDimensionName("Age");

            modelEmploymentStatus = new ModelDistribution();//
            modelEmploymentStatus.SetDimensionName("EmploymentStatus");

             /*   modelPublicTransitConditionals = new ModelDistribution();//
            modelPublicTransitConditionals.SetDimensionName("PublicTransitPass");*/

            modelOccupationConditionals = new ModelDistribution();//
            modelOccupationConditionals.SetDimensionName("Occupation");

            modelSexConditionals = new ModelDistribution();//
            modelSexConditionals.SetDimensionName("Sex");

            modelDriverLicenseConditionals = new ModelDistribution();//
            modelDriverLicenseConditionals.SetDimensionName("DrivingLicense");
        }