本文整理汇总了C#中ITashaHousehold.MultiPersonMode方法的典型用法代码示例。如果您正苦于以下问题:C# ITashaHousehold.MultiPersonMode方法的具体用法?C# ITashaHousehold.MultiPersonMode怎么用?C# ITashaHousehold.MultiPersonMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITashaHousehold
的用法示例。
在下文中一共展示了ITashaHousehold.MultiPersonMode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
/// <summary>
/// Runs the ModeChoice model on the given household
/// </summary>
/// <param name="h">The household to run on</param>
public bool Run(ITashaHousehold h)
{
// Compute the error terms and feasibility of non shared modes
ComputeErrorTerms( h );
//there are no "trip chains" so return true
for ( int i = 0; i < this.HouseholdIterations; i++ )
{
// To start with Generate the LogLikelyhoods
if ( i == 0 )
{
foreach ( var person in h.Persons )
{
person.CalculateLoglikelihood();
}
}
else
{
// on ever other one just update the utilities
h.UpdateUtilities();
}
ModeChoiceHousehold.ModeAssignmentHouseHold result = h.ResolveConflicts();
//assign the best mode to each trip to prep for pass 3
if ( result == ModeChoiceHousehold.ModeAssignmentHouseHold.ADVANCED_CASE )
{
List<ITripChain> l = h.AllTripChains();
IVehicleType[] vt = ModeChoiceHousehold.FindBestPossibleAssignment( l, new List<IVehicle>( h.Vehicles ) );
if ( vt != null )
{
AssignBestMode( h, vt );
}
else
{
// TODO: should assign best possible vehicle even if
// someone cannot execute their tripchain since they can
// be passengers
return false;
}
}
else if ( result == ModeChoiceHousehold.ModeAssignmentHouseHold.SIMPLE_CASE )
{
AssignBestMode( h );
}
else if ( result == ModeChoiceHousehold.ModeAssignmentHouseHold.NULL_SET )
{
ReleaseModeSets( h );
return false;
}
//pass 3
h.MultiPersonMode();
//finally store it to the list of "generated" realities
DoAssignment( h, i );
}
ReleaseModeSets( h );
return true;
}