2021年认证杯SPSSPRO杯数学建模
D题 停车的策略
原题再现:
开车前往人流集中的目的地时,决定在何处停车经常是一个难题。是停在距离目的地较远的地方,因为那里的空余车位可能较多,然后再走很远的路?或者是否应该乐观一点,把车开到目的地附近,只寻找附近的停车位?如果采用后一种策略,如果目的地附近没有停车位,那么就必须回头去寻找更远的停车位,结果会更严重地浪费时间。
假设有一个足够大的停车场,停车位排列成一维的序列,目的地在序列的一端。我们不能居高临下地看到远处的车位情况,只能在开到车位附近时才能看清这里是否已被占据。图 1 是这个停车场的示意图,车辆从右向左进入,左侧的端点是目的地。
有人采用的策略是看到第一辆停着的车,就立即停到这辆车的右侧。这可以保证有位置,但显然会付出步行时间的代价。有人则将车一直向前开,直到左侧的端点,如果端点处没有空的停车位,再倒车到离目的地最近的空位(我们可以假设倒车不会影响后续车辆)。这可以找到当前离目的地最近的空位,但倒车也会损失时间,如果需要倒很远,带来的损失就更大了。还有人的策略是第一次看到有两个并排的空位时就停下来,如果开到最左端还没有看到,再采用倒车的办法。诸如此类。
第二阶段问题:
1. 如果所有人都采取同一个停车策略,请你设计一个尽量好的停车策略,并总结该策略的确定与哪些因素有关。
2. 如果你在进入前不知道这个停车场的情况,也不知道其他人采取的是什么停车策略。在进入停车场的过程中,你可以看到已经经过的车位的情况,也知道当前位置距终点的距离。请你设计一个对你而言尽可能合理的停车策略。
整体求解过程概述(摘要)
本文针对停车策略的优化选择问题。面对停车场空位的寻位策略选择,出行者将会做出停车位选择的不同组合决策,其所耗的时间成本不但包括路上的时间成本, 还包括车位寻找不理想时重新寻找停车空位的时间成本。
针对问题一,在停车场起点到目的地之间快速有效找到待停车位的问题,结合了常见停车场结构模型。要设计一个尽量好的停车策略,我们可以以停车者的满意程度来作为策略优劣的评判。使得停车者对策略满意又必须满足停车总耗用时长尽可能短,体力耗费尽可能小,据此可知:由时间等于路程除以速度可得,停车总耗用时长与汽车平均速度和停车者步行平均速度的关系式。而要求耗费体力,我们需至少考虑停车者的年龄和时间段对于体力耗费的影响,得到函数关系式,由上述分析可知我们得到与策略优劣相关的满意度方程。在将数据代入模型中时,考虑了行驶距离,行驶路程,车型,停车者的体力状况以及各个时间段体力耗用速度这些直接性因素。最终通过函数关系式得出结论:将停车者年龄划分为两个阶段,第一阶段的停车者从入口从右到左依次停车;第二阶段的停车者从目的地从左往右依次停车,该方案为最佳接近理想效果。
针对问题二,我们设计一个对我们而言尽可能合理的停车策略。我们继续采用最优模型,将车开到整个停车场的中点车位,判断中点车位的相邻车位停车情况如何。其中分为三种情况,当停车位情况下,中点相邻有无车位,即停车到终点位置;当终点相邻有车位,继续往目的地前进,直到找到最近车位,当中点无车位,即倒车到离终点最近车位;当车辆走到目的地在返回起点直到所停位置。利用停车时间与停车距离,我们对等待时间,停车距离进项函数分析公式。由上述分析,我们可以采用最优化模型进行与原策略的对比分析,通过策略三方法相比前两种策略能第一时间快速找到停车位,以证明该策略的可行性。因此导致步行到离目的地较近的时间过长来确定最优方案策略三为最佳停车方案。
问题分析:
问题1的分析
问题1要求我们设计一个尽量好的停车策略,说到停车策略,我们要么会想到从停车场入口到目的地依次停车;要么会想到从目的地倒车回去依次停车到入口。这两种策略显然都有瑕疵也有违公平,为确保在大家采用同一种停车策略下的公平公正性,充分照顾每一位停车者的时间体力问题,我们先拟定采用40岁年龄以下的年轻人从入口处依次停车,而40岁以上的年老者从目的地处依次停车,这样我们既省下了寻找车位的时间,也照顾到了每位停车者的时间,体力问题。由上述分析,我们可以采用最优化模型来对比这几种策略间的优劣,分析改善这一策略。
问题2的分析
问题2要求我们设计一个对我们而言尽可能合理的停车策略。首先对我们合理即尽可能让我们在停车方面节约时间,在步行方面节省体力。其次我们刚进入一个不熟悉的车库时,我们所知停车者要么从左到右依次停车;要么先直接开去目的地然后再倒车寻找最近的车位,因此,我们可以先将车开到整个停车场的中点车位,判断中点车位的相邻车位停车情况如何。我们可知如果停车者是选择的开到目的地附近再倒车寻找车位的话,中点车位前有车位的话,说明前方很可能还有车位,那我们可以继续前进,如果中点车位附近没有车位,则很可能前方没有车位了,那我们再原路倒车寻找最近的车位。所以我们设计的大概策略为:将车开到停车场的中点位置,记住距离中点最近的车位位置,如果中点位置有车位,中点车位的相邻车位无车位,即停车到中点车位;如果中点相邻车位有车位,继续往目的地前进,直至找到最近车位;如果中点位置无车位,即倒车到离中点最近的车位。由上述分析,我们可以采用最优化模型进行与原策略的对比分析,以证明该策略的可行性。
模型假设:
1.假设每辆车进入车库后速度都为匀速,且为4米每秒;两个年龄阶段的停车者在停车场里分别为匀速4米每秒和3米每秒。
2.假设影响停车者体能的主要因素只有年龄和时间段,且各个时间段的影响效果是相同的,其他因素我们忽略不计。
3.假设每个停车者对停车策略优劣的评判主要取决于停车总时长和步行所消耗体能。
论文缩略图:

全部论文及程序请见下方" 只会建模 QQ名片" 点击QQ名片即可
非慈善耶稣
部分程序
bash
states_needed = set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"])
stations = {}
stations["kone"] = set(["id", "nv", "ut"])
stations["ktwo"] = set(["wa", "id", "mt"])
stations["kthree"] = set(["or", "nv", "ca"])
stations["kfour"] = set(["nv", "ut"])
stations["kfive"] = set(["ca", "az"])
final_stations = set()
while states_needed:
best_station = None
states_covered = set()
for station, states in stations.items():
covered = states_needed & states
if len(covered) > len(states_covered)
best_station = station
states_covered = covered
states_needed-= states_covered
final_stations.add(best_station)