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
重复,直到剩下一个值,然后完成!或者,第一个数字可以简单地从每次行走的长度中减去。我会忘记图形,将任务列表视为向量——每个任务都表示为一个组件,其值等于其成本(在这种情况下,完成时间) 在任务中,最初的顺序是不同的,如果领域知识告诉您成本的比率会受到顺序/时间的同步影响,那么可以使用领域知识将任务转化为管状形式,并分配乘数。时间是隐含的初始顺序,但您可能需要为调整时间而设定一个函数nt因素(比如午餐时间开车与午夜开车)。函数可能是表格/离散的。一般来说,评估比率和相对偏差(hardnes of doing)总是容易得多.你可能需要一种函数语言来重复重写向量,直到知识和规则无法改变为止
用经典向量考虑任务的存在性和不存在性(仅0次迭代1次)并寻找最小差异-首先是单任务差异-以提供少量变量的估计值。继续递归地进行此操作,准备回溯,并为到目前为止的估计值的优劣或质量制定一个启发式规则。跟踪回溯的好“轮数”
当你达到最小的不可约状态时——没有更多的差异——所有向量都有相同的剩余任务,然后你可以做一些基本的统计,如方差、均值、中值,并寻找大的异常值,以及改进基于领域知识的初始估计的方法,从而形成cannonical形式。如果你找到了很多,并且可以推断出新的规则,接受他们,从一开始就开始整个过程 是的,这可能要花很多钱:-)请原谅我在Common上的耽搁