三辆出租车在 1 区排队等待下一个工作,这些出租车的呼号分别是 1,2 和 3;到达 1 区的出租车排在最前面。
出租车 1 如果先出出租车 2 是第二出而出租车 3 是第三出。
但是,出租车 3 有一个他之前被分配的工作,这个工作将在 30 分钟内准备好,但这个工作在区域 2;
出租车 3 决定在 1 区等待,看看是否有工作预订,以便在 30 分钟内将他带到 2 区,以便与他在 2 区的工作联系起来。
然后一个接一个地,中心办公室在 1 区接 3 个工作。一旦所有工作被预订,出租车计算机就会调度这些工作。job1 去出租车 1 这个工作在 2 区完成 job2 去出租车 2 这个工作在 25 区完成 job3 不能去出租车 3,因为它在 22 区完成,这会使他在 30 分钟内在 2 区工作迟到。
在 job1 上发送 car3,在 job3 上发送 car1 是有意义的。
使用 c# 编程我怎么能完成调度汽车/工作的最有效方式。所以 Job 1 去 Car 3 Job 2 去 Car 2 而 jJob 3 去 Car 1。
ForEach (myJobObj job in JobsToBedispatched)
{
ForEach (myTaxiObj taxi in taxisQued)
{
if(TaxiCanDoThisJob(job,taxi))
{
DispatchThisJobToThisTaxi(job,taxi)
}
else
{
MarkThisJobNoGoodForThisTaxi(job,taxi)
}
}
}