【发布时间】:2016-02-17 18:53:10
【问题描述】:
这是我在here 提出的问题的后续问题。问题被映射到一个图上,边上有非负权重(如果它可以被引导,则没有偏好)。但是,除了实际上是距离的权重之外,我们还有另一个属性是边缘的数据覆盖范围,考虑到我在手机上需要互联网的严重程度(例如实时游戏我需要良好的带宽)。所以总的来说,我们希望以某种方式在路径长度和网络带宽之间找到一个权衡,以解决在两个城市之间寻找最优化和最短路径的问题。然而,一个重要的特点是算法应该是动态的。一旦我们到达一个节点,根据我们当前的需求状态,我们可能会改变预先确定的路径。
好的。为简单起见,假设每条边与两个属性相关联:A) 距离或旅行时间或其他任何属性,作为常规权重,B) 网络带宽作为次要属性,以显示网络有多好。
对于约束和目标函数,假设我们希望最小化总距离(或旅行时间),但根据我们当前的状态,我们还希望最小化总断开时间 或最大化 total sum of path bandwidths。可选地,假设我们不能容忍超过阈值T 的总连续断开连接时间。所以这可能是对问题的限制。此类目标函数中最简单的可以是 f()=total time of travel + a*time of disconnection。 a 系数决定了连接对我们的重要性。
为了解决边缘可能出现部分断开的事实,经过一番思考,我想到了一个解决方案,让我们在其间插入节点。这使得问题更容易解决。所以基本上每条路由要么断开连接,要么连接具有特定值的带宽。
我想到的第一个版本的解决方案是在我们计算路径时累积总连续断开连接时间,因此它不能超过阈值T。每当我们到达一条有连接的路由(对于更简单的问题,不管带宽如何),我们只需重置累积。进一步考虑带宽,因为我们也有连接带宽的价值,我们可以从总的累计断开时间中扣除连接带宽的价值(它工作吗?!)
一个重要的事情是考虑以下示例图。不超过总断开阈值不应导致通过很远的路线,这会增加总行程时间!为此,我考虑了这种通用方法:解决例如T1, T2, ...Tk 的断开阈值问题,计算最佳路径(或者可能是一组最佳路径?!),并计算每个路径的相应总行程时间。然后应用我们上面的目标函数,看看什么是最优解。我们可以进一步确定两个样本之间的解决方案,以使用类似二分搜索的方法找到更优化的解决方案。
拜托,有人可以帮我解决这个问题吗?显然我的解决方案是不正确的,如果是的话,在多项式时间内甚至是不可能的。也许是近似算法?!非常感谢任何有助于找到解决方案的帮助。随意添加更多细节或假设,或修改问题。这个问题比我想象的要难。
【问题讨论】:
标签: algorithm graph routing dijkstra shortest-path