优化停车场问题。应使用哪些算法来最大化停车场内的车辆数量?

我应该使用哪些算法(无论是暴力破解还是其他方法)来在一个停车场内停放尽可能多的车辆(假设所有车辆大小相同),确保至少有一个出口(从容器中),并且车辆不会被阻塞。或者有人能展示一个这个问题的程序化解决方案吗?

停车场的形状可能会有所不同,但如果假设它是某种不变的形状也可以接受。

另一个编辑:假设停车场内的行驶距离不是一个因素(虽然如果它是一个与停车场内车辆数量相关的加权因素会很棒)。

另一个编辑:假设是二维的(没有起重机或从车辆上方行驶)。

另一个编辑:一旦车辆停好后,不能移动车辆(这不是代客泊车)。


回答:

好吧,让我们简化并具体化一些。假设我们的车辆是单位正方形,停车场是N x N,我们需要从左下角进入/离开。一个简单的模式可以使停车场几乎达到2/3的满载(以N=12为例展示):

+------------+|C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C||C CC CC CC C|             |  -----------+

我可以证明,最好的情况是使停车场达到2/3的满载。想象一下,你从一个完全满的车库开始,一次开出一辆(当前可达的)车来构建空位。每次你移走一辆车时,你最多会产生3辆新可达的车,并移走一辆曾经可达的车(现在是一个空位)。所以每制造一个空位,你最多创造两个新的可达车辆。要使2/3 N^2的车辆可达,你需要至少制造1/3 N^2的空位,而这些是你所有的方块。所以你最多能将车库填满2/3。

上面的简单模式在渐进上是最优的,因为当N趋向于无穷大时,其密度接近2/3。(有点无聊,我原本希望某种树状模式能做得更好。)

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注