给定图表中的步行列表确定边缘权重

时间:2010-08-03 19:02:48

标签: language-agnostic graph graph-theory

这些问题涉及一组数据,其中包含连续执行的任务列表以及完成这些任务所需的总时间。我一直想知道是否有可能确定有关任务长度的有用信息,无论是它们是什么,或者根据适当的领域知识进行初步猜测。我开始认为图论是抽象地处理这个问题的方法,并且对这些东西有一个很好的基本把握,但​​我无法确定我是否在正确的轨道上。此外,我认为这是一个非常有趣的问题。所以我们走了:

  1. 是否有可能在定向加权图中确定边的权重,给定该图中的行走列表以及所述行走的长度(总和权重)?我认识到步行路线上排列的数量和质量将决定任何可能答案的质量,但让我们假设所有可能的步行和长度都给出。如果无法得出明确答案,那么可以得出什么样的事情?你会如何得出这些结论?

  2. 如果有几条相似的步道可能会有不同的长度怎么办?如果在不同的路线上有足够的排列,你能计算出每个边缘的合理平均值(或其他说明性度量)吗?如何从可用数据集中对某些排列进行折扣会影响计算的准确性?

  3. 最后,如果您对权重进行了一系列初步猜测,并且必须使用给出的步数来细化那些?这会改善您的猜测能力吗?您如何应用额外信息?

  4. 编辑:澄清简单线性代数方法的困难。考虑以下一组步行:

    a = 5
    b = 4
    b + c = 5
    a + b + c = 8
    

    具有这些值的矩阵方程是不可解的,但我们仍然想估计这些项。可能存在一些有用的初始数据,例如在场景3中,并且在任何情况下我们都可以应用现实世界的知识 - 例如任务的长度不能为负。我想知道你是否有关于如何确保我们得到合理估计的想法,以及我们也知道我们不知道的东西 - 例如。当没有足够的数据告诉b时。

3 个答案:

答案 0 :(得分:3)

似乎是线性代数的应用。

您有一组需要解决的线性方程式。变量是任务的长度(或边缘权重)。

例如,如果3个任务的任务长度为t1,t2,t3。

你得到了

t1 + t2 = 2  (task 1 and 2 take 2 hours)

t1 + t2 + t3 = 7 (all 3 tasks take 7 hours)

t2 + t3 = 6   (tasks 2 and 3 take 6 hours)

解决给出t1 = 1, t2 = 1, t3 = 5

你可以使用任何线性代数技术(例如:http://en.wikipedia.org/wiki/Gaussian_elimination)来解决这些问题,这将告诉你是否有独特的解决方案,没有解决方案或无限数量的解决方案(没有其他可能性)

如果您发现线性方程没有解,您可以尝试在矩阵的某些任务权重/系数中添加一个非常小的随机数,并尝试再次求解。 (我相信属于Perturbation Theory)。矩阵因为值的微小变化而彻底改变行为而臭名昭着,因此这可能会很快给出一个近似答案。

或许你可以尝试在每次行走中引入一些“松弛”任务(即添加更多变量)并尝试选择新方程的解决方案,其中松弛任务满足一些线性约束(如0 Linear Programming技术最小化s_i)的总和。

答案 1 :(得分:0)

假设您有无限数量的任意字符来表示每条边。 (a,b,c,d等)

w是所有行走的列表,形式为0,a,b,c,d,e等(0将在后面解释。)

i = 1

如果#w [i]〜= 1则

用w [i]的长度替换w [2],减去w中的所有其他值。

永远重复。

示例:

0,a,b,c,d,e 50

0,a,c,b,e 20

0,c,e 10

所以:

a是第一个。将所有“a”实例替换为50,-b,-c,-d,-e。

新数据:

50,50

50,-b,-d,20

0,c,e 10

然后,重复直到剩下一个值,然后你就完蛋了!或者,可以简单地从每次步行的长度中减去第一个数字。

答案 2 :(得分:0)

我会忘记图表并将任务列表视为向量 - 每个任务都表示为一个值等于其成本的组件(在这种情况下完成的时间。

在最初处于不同的任务中的任务中,如果领域知识告诉您成本比率将受到排序/时间的同步影响,则可以使用领域知识将其带入规范形式并分配乘数。时间是隐含的初始排序,但您可能必须为调整因子制定时间函数(比如午餐时间驾驶与午夜驾驶)。函数可能是表格/离散的。一般来说,评估比率和相对偏差(做某事的困难)总是容易得多。你可能需要一种函数式语言来重复重写你的向量,直到没有更多的知识和规则可以改变。

使用cannonical向量考虑任务的存在和缺失(这个迭代只有0 | 1)并寻找最小差异 - 单个任务差异 - 这将提供估计少量变量。继续以递归的方式做这件事,准备好回溯,并且到目前为止有一个关于良好性或估计质量的启发式规则。跟踪你回溯的好“轮”。

当你达到最小的不可减少的状态 - 不再有许多差异 - 所有向量都有相同的剩余任务然后你可以做一些基本的统计数据,如方差,均值,中位数和寻找大异常值以及改善初始领域知识的方法基于估计,导致形式。如果你掌握了很多并且可以推断出新的规则,那就把它们带入并从头开始整个过程​​。

是的,这可能会花费很多:-)