- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
目前在学习图论,期间卡在了以下图相关的问题。让我们从一个例子开始。这听起来像是一道纯数学题。
例如:要实现的加权图:
上面显示了一个简化的图(它是从一个更复杂的网络中提取的)。
有5条简单路径,14条边及其各自的权值,11个节点(不同路径中的蓝色节点可以相同,但单条路径中的节点完全不同)。我试图找到节点 s 和节点 t 之间的最佳路径(均为黑色)满足以下条件:
或者我什至可以根据某些方法对所有简单路径进行排名?
更具体地说,让我们将节点视为社交网络中的用户,将边每对用户之间的关联。权重与关联的可靠性成正比(10 是最可靠的,1 是最不可靠的)。
那么,有没有一种好的方法来定义和计算间接关联的权重(节点s和节点t 在例子中)?正如我们所知,一条路径在 s 和 t 之间的连接(边)越多,它的可靠性就越高趋于下降;而且,这条单一路径的每条连接的可靠性下降,也会导致其可靠性下降。这就是为什么上述条件需要更短的路径,以及路径的每条边上更大的权重。
谢谢你们的宝贵时间,伙计们!
最佳答案
由于该问题仅模糊地定义了每条可能路径的有利程度,因此该问题的答案应首先定义这样的排序。
根据您的问题定义,更具体地说,根据您关于社交网络关系的示例,我认为我们可以得出支持和反对一条路径有多有利的因素。
我们知道,在这种情况下,每条边都支持路径的可靠性,其数量与其成本或值(value)成正比。直觉上,似乎有一个因素支持路径的可靠性,它与路径上边的平均成本成正比。您还提到长度是影响事物的第二个因素,但这次是在另一个方向上。 (即反对路径的可靠性)
考虑到这两个因素,可以推导出如下公式,并用于对每条路径的可靠性进行排名。
如您所见,有一个求和表达式,其中 cei 表示每条边的成本 ei 在路上。 n 表示路径上的边数。整个总和除以n本质上就是我上面提到的第一个因素。 (即路径上边的平均成本)而分母中表达式 n2 中的第二个 n 是第二个因素,即路径的长度,这与边的可靠性背道而驰。
我还介绍了 3 个常量,以便您可以根据您计划如何使用它来更新此公式。 C2 表示支持路径长度在降低整个路径可靠性方面的有效性的额外因素。类似地,C1 是一个因素,表明增加平均边成本在使该路径更可靠方面的效果如何。最后,C3 可以是一个可选因子,它可以等于路径上的最小或最大边成本。
虽然 C1 和 C2 相对更容易理解,但这里有一个 C3 可能派上用场的例子。假设您的路径 A 和 B 的边成本分别为 [3, 7, 8] 和 [5, 6, 7]。由于它们的路径长度和边成本之和相同,因此无法确定哪条路径更有利。这就是为什么在这种情况下我们需要一个因子,例如 C3,并且根据您的需要,您可以认为它等于每条路径的最小边或最大边。如果您的问题定义选择前者并为 C3 分配每条路径的最小边成本,则路径 B 被认为更好,因为它的最小边成本更高。但是,如果选择后者,则路径 A 更为有利。
我知道,在我的答案中没有定义常量,在某种程度上,可能会让人觉得答案不完整。我相信下面给出的作业暂时应该有效。
C1 = 1C2 = 1C3 = min(cei)
不过,我相信这个问题的不同变体可能需要这些常量的不同值,这就是为什么我没有声明这些值适用于问题的所有变体。
关于python - 在加权图中找到下面定义的 "best"路径的任何好的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369662/
上下文 我有一个日间 TUMBLINGWINDOW(类似于下面所示的) SELECT DATEADD(day, -1, System.Timestamp()) AS WindowStart
因此,我正在开发一个非常小的 Web 组件,以作为更大的设计系统的一部分。 我对网络组件的使用有点陌生,但我知道这个特定的网络组件可以在一个布局中使用很多很多次。 此 Web 组件控制在传递给它的任何
我刚刚开发了一个 Android 应用程序(minSdkVersion 23/targetSdkVersion 29),可以连接到 BluetoothLE 设备以定期获取数据。 现在,在 MainAc
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
我一直在阅读有关 Airplay SDK 和 Dragonfire SDK 的内容。这些是在没有 Mac 的情况下进行 iphone 开发的合法选择吗?大家有更好的解决办法吗? 最佳答案 由于签名等原
我正在考虑使用 DTO 而不是传递我的域对象。我在这里和其他地方都读过几篇文章,我知道有几种方法可以完成这项工作。 如果我总共只有大约 10 个域类,并且考虑到我想在我的 View (WPF 前端)中
我的问题是,如果我有一个列表 list = [1,2,3,4,5,6,7] 如果我想知道这个列表中元素的数量,是len(list) 或 list.count 更好的选择?还是 .count 仅适用于来
我想知道 Django Rest Framework 的最佳实践。我一直通过每个用户使用不同的序列化程序(员工、帐户所有者、其他人)和 HTTP 方法来限制更改帐户上某些属性的访问权限,但我觉得这太不
我有数百个用于测试组件的脚本。这些脚本中的每一个都包含一组下标和单独的记录。 下标可以在多个 TC_Level 脚本中使用,甚至可以在其他下标中使用。 每个脚本都有一个唯一的名称。 例子: TC_1
我正在建立一个以两种语言提供产品信息的网站:英文和中文。 每个产品必须有英文名称,也可以有中文名称。 每次请求产品页面时,request检查对象以确定产品名称应该以英文还是中文显示。在后一种情况下,如
场景:应用程序具有可以启用某些优化的算法。默认情况下,有些是打开的,有些是关闭的。在 Java 中是否有一种方便的方法来实现某种全局属性系统? 要求: 必须很容易两次使用不同的设置运行程序的多个实例
我从事嵌入式工作,我有一些管理硬件的软件模块。这个模块有状态,状态转换很复杂:根据事件,模块可以从状态 A 到状态 B 或者可能到 C .但是,当它退出某个状态时,它应该对硬件执行一些操作,以使其也保
我有一个免费网站,可以流式传输实时股票期权数据。我想让用户制作并保存他们自己的 JavaScript 可调用工具来解释选项数据。用户可以调用这些自定义工具来帮助他们自己做出有关期权的买卖决定。 但对于
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 2 年前。 社区在 6 个
我不是 DBA,我不知道什么是最好的解决方案。我有两个表, Custumers Table CustomerId (primary key, identity) ... 和 Suppliers Tab
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我一直在阅读关于版本控制主题的所有问题,但我认为我没有找到一个看起来像我自己的场景。 场景是: 我们有一个中型/大型 Web 应用程序,它有(至少应该有)一个部署到所有客户端的核心。当我们向客户演示应
我希望根据继承来组织一些项目,目的是确定哪些项目是连接最密集的父项,并且还只是看到形成的连接。 通常这将通过拓扑排序来完成,但我的图有循环。是否有类似“尽力而为”拓扑排序的东西,它可以尝试根据连接数或
以下在 JQuery 中附加事件处理程序的方法有什么区别? (function () { var $body = $("body"); $('button').click(functi
我是一名优秀的程序员,十分优秀!