【问题标题】:Specific Path Algorithm with Speed Considered考虑速度的特定路径算法
【发布时间】:2010-02-07 18:54:16
【问题描述】:

我需要创建一个算法,其中“车辆”覆盖 1262 m x 1262 m 区域,每个“车辆”之间有 20% 重叠腿”。每条腿的宽度为 103 m,根据我的计算,覆盖该区域需要 16 个“腿”。在每条行程结束时,车辆会进行 180 度 转弯,并完成下一个搜索行程。车辆以23米/秒

的恒定速度行驶

现在我在 SO 上问这个的原因是一些问题:

  1. 什么是最好的处理方式 车辆的“位置” 和速度有关系吗?拿1 第二个“快照”,只需移动 车辆23米? (这看起来很亲切 边缘粗糙)..

  2. 如何处理转弯 每条腿的末端相对于 速度?

  3. 我应该预先分配搜索吗 腿参数(IE找到界限 在初始化时的每条腿上) 或动态计算这些在 每个搜索段的终点?

  4. 我最终会 实现这个算法 Java...什么Java 函数/库会帮助我 时间、数学等?

  5. 我还需要考虑什么?

编辑

(回答其中一个问题)

基本上,在整个搜索区域中会随机放置需要找到的“对象”……我打算解决这个问题,只要我让车辆沿着正确的路径行驶并覆盖该区域。车辆转弯时确实覆盖了区域。最小转弯半径为 12 米。我只是想让它在每个搜索腿的末端转弯,然后排队等待下一个腿

【问题讨论】:

  • 你想达到什么目的?你想找到完成所有腿+转弯的总时间吗?计算总距离?或者实际上在屏幕上显示车辆在移动?
  • 我需要模拟车辆以给定的速度“覆盖”该区域......我不确定我是否真的会有一个图形显示来显示这个......
  • 家庭作业?或者这将在哪里使用?
  • 它的功课,这就是为什么我要求“更高级别”的时间帮助,而不是具体的实施细节

标签: java algorithm optimization timing


【解决方案1】:

您可能会研究为寻找失踪人员、飞机、沉船等进行空中或潜水搜索而设计的搜索算法。

另一个想法是研究“空间填充曲线”的使用。可以在here 找到 Bartholdi 的一些作品。

【讨论】:

【解决方案2】:

尽管我没有完全理解你描述背后的主要思想,但我尝试给出一些答案。

  1. “快照”尽可能小。在计算之间停止时间,然后根据时间移动您的车辆。示例代码如下。

  2. 您的车辆每秒转多少度?

  3. 如果这些不变,我会在开始时计算。

  4. 纯 Java SE 应该足以满足您的需求。检查 java.lang.Math 和 java.lang.System 的 API。


while(true) {
     final long time = System.currentTimeMillis();
     doSomeCalculations();
     doSomethingMore();
     long passedTime = System.currentTimeMillis() - time;
     vehicle.move(26.0 / 1000.0 * passedTime);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2011-02-11
    • 2011-01-10
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多