Ejemplo n.º 1
0
        public static int GetFrequency(ITashaHousehold household, Activity activity, Random random, int maxFreq, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            bool feasibleFreq = false;
            int  freq         = maxFreq;

            while (!feasibleFreq)
            {
                freq = Distribution.GetRandomFrequencyValue(
                    0, Distribution.NumberOfFrequencies - 1, random, Distribution.GetDistributionID(household, activity),
                    householdPD, workPD, generationAdjustments);
                if (freq == 0)
                {
                    feasibleFreq = true;
                }
                if (!Distribution.GetRandomStartTimeFrequency(
                        Distribution.GetDistributionID(household, activity), freq,
                        0, Scheduler.StartTimeQuanta - 1, random, out Time startTime))
                {
                    // a bad thing happens here
                }
                else if (startTime != Time.StartOfDay)
                {
                    feasibleFreq = true;
                }
            }

            return(freq);
        }
Ejemplo n.º 2
0
        public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int maxFrequency,
                                       Time startTime, Time endTime, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            bool feasibleFreq = false;
            int  freq         = 0;

            while (!feasibleFreq)
            {
                freq = Distribution.GetRandomFrequencyValue(
                    0, maxFrequency, random, Distribution.GetDistributionID(person, activity), householdPD, workPD, generationAdjustments);
                if (freq == 0)
                {
                    break;
                }
                if (!Distribution.GetRandomStartTimeFrequency(
                        Distribution.GetDistributionID(person, activity), freq,
                        Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out Time duration))
                {
                    //a bad thing happens here
                }
                else if (duration != Time.Zero)
                {
                    feasibleFreq = true;
                }
            }

            return(freq);
        }
Ejemplo n.º 3
0
 internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time ourStartTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out ourStartTime));
 }
Ejemplo n.º 4
0
 internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Random random, out Time startTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity),
                                                     frequency, 0, Scheduler.StartTimeQuanta - 1, random, out startTime));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Gets a startTime between the given startTime and endTime
 /// </summary>
 /// <param name="person"></param>
 /// <param name="activity"></param>
 /// <param name="frequency"></param>
 /// <param name="startTime"></param>
 /// <param name="endTime"></param>
 /// <param name="random"></param>
 /// <param name="returnTime"></param>
 /// <returns></returns>
 internal static bool GetStartTime(ITashaPerson person, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time returnTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out returnTime));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Gets a startTime based on the given person and activity, assumes frequency is 1
 /// StartTime is between start and end of day
 /// </summary>
 /// <param name="person">The person</param>
 /// <param name="activity">The activity</param>
 /// <param name="random"></param>
 /// <param name="startTime"></param>
 /// <returns></returns>
 internal static bool GetStartTime(ITashaPerson person, Activity activity, Random random, out Time startTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity),
                                                     1, 0, Scheduler.StartTimeQuanta - 1, random, out startTime));
 }