Language agnostic 在图中给定一个行走列表来确定边权重

Language agnostic 在图中给定一个行走列表来确定边权重,language-agnostic,graph,graph-theory,Language Agnostic,Graph,Graph Theory,这些问题涉及一组数据,其中列出了连续执行的任务以及完成这些任务所需的总时间。我一直在想,是否有可能确定关于任务长度的有用信息,或者根据它们的实际情况,或者根据适当的领域知识进行一些初始猜测。我开始认为图论将是抽象地处理这个问题的方法,并且对这些东西有一个相当好的基本掌握,但是我无法确定我是否在正确的轨道上。此外,我认为这是一个非常有趣的问题。现在我们开始: 给定一个有向加权图中的行走列表以及所述行走的长度(总权重),是否可以确定该图中边的权重?我知道行走路线上排列的数量和质量将决定任何可能答案的

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

  • 给定一个有向加权图中的行走列表以及所述行走的长度(总权重),是否可以确定该图中边的权重?我知道行走路线上排列的数量和质量将决定任何可能答案的质量,但让我们假设所有可能的行走及其长度都已给出。如果一个明确的答案是不可能的,什么样的事情可以总结的图表?你将如何得出这些结论

  • 如果有几次类似的散步,可能给出了不同的长度,会怎么样?如果在不同的路线上有足够的排列,你能为每条边计算一个合适的平均值(或其他说明性的度量值)吗?从可用数据集中剔除某些排列将如何影响计算的准确性

  • 最后,如果您有一组关于权重的初始猜测,并且必须使用给定的行走来细化这些猜测,会怎么样?这会提高你的猜测能力吗?你如何应用额外的信息

  • 编辑:关于普通线性代数方法的困难的澄清。考虑下面的一组散步:

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

    具有这些值的矩阵方程是不可解的,但我们仍然希望估计这些项。可能有一些有用的初始数据可用,比如场景3,在任何情况下,我们都可以应用真实世界的知识——比如任务的长度不能为负。我想知道你们是否有办法确保我们得到合理的估计,并且我们也知道我们不知道的东西——例如,当没有足够的数据来区分a和b时。

    似乎是线性代数的应用

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

    例如,如果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

    您可以使用任何线性代数技术(例如:)来解决这些问题,这将告诉您是否有唯一的解决方案、没有解决方案或有无限多个解决方案(没有其他可能)

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


    或者,您可以尝试在每次行走中引入一些“松弛”任务(即添加更多变量),并尝试使用技术选择松弛任务满足某些线性约束(如0 假设您有无限数量的任意字符来表示每条边。(a、b、c、d等)

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

    i=1

    如果w[i]~=1,那么

    将w[2]替换为w[i]的长度减去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


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

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

    在任务中,最初的顺序是不同的,如果领域知识告诉您成本的比率会受到顺序/时间的同步影响,那么可以使用领域知识将任务转化为管状形式,并分配乘数。时间是隐含的初始顺序,但您可能需要为调整时间而设定一个函数nt因素(比如午餐时间开车与午夜开车)。函数可能是表格/离散的。一般来说,评估比率和相对偏差(hardnes of doing)总是容易得多.你可能需要一种函数语言来重复重写向量,直到知识和规则无法改变为止

    用经典向量考虑任务的存在性和不存在性(仅0次迭代1次)并寻找最小差异-首先是单任务差异-以提供少量变量的估计值。继续递归地进行此操作,准备回溯,并为到目前为止的估计值的优劣或质量制定一个启发式规则。跟踪回溯的好“轮数”

    当你达到最小的不可约状态时——没有更多的差异——所有向量都有相同的剩余任务,然后你可以做一些基本的统计,如方差、均值、中值,并寻找大的异常值,以及改进基于领域知识的初始估计的方法,从而形成cannonical形式。如果你找到了很多,并且可以推断出新的规则,接受他们,从一开始就开始整个过程

    是的,这可能要花很多钱:-)

    请原谅我在Common上的耽搁