有向图中具有共享子路径的路径的高效计算

时间:2019-02-15 11:17:49

标签: data-structures graph path tree

我需要一个有效的数据结构建议,以适合我在约束条件下计算有向图内部路径成本的问题,即许多路径有时共享同一子路径,而我不想对其进行两次计算。

这些列表中的每个数字都指向有向图内的一个节点。每行描述一条路径:

    guard let user = userName.text else { return }
    guard let password = password.text else { return }
    let credentials = SyncCredentials.usernamePassword(username: user, password: password)
    let syncURL = URL(string: "\(Constants.REALM_URL)/~/Pictu")!

    SyncUser.logIn(with: credentials, server: Constants.AUTH_URL) { user, error in

        if let error = error {
            print("User Error: \(error.localizedDescription)")
        }

        if let user = user {
            let realmConfig = user.configuration(realmURL: syncURL)
            Realm.asyncOpen(configuration: realmConfig) { realm, error in
                if let realm = realm {
                    print("Realm Open")
                    self.realm = realm
                } else if let error = error {
                    print("Realm Error: \(error.localizedDescription)")
                }
            }
        }
    }

在此示例中可以看到,许多路径沿途共享相同的节点子集。 (还有许多其他路径(此处未显示)不共享子路径。)

我想计算每个路径的“最优性”,即沿途的权重之和或乘积。在遍历每条路径时,这些权重对于我的图可以看作是恒定的。

要清楚:我想避免在此示例中为所有所示路径计算从节点121到节点141的路径权重,因为两个节点之间权重的这些乘/加是相同的(直到节点141) )在显示的每个路径中...

我对数据结构的建议和解释感到满意,为什么所提到的数据结构最适合我的需求。 如果您也有库建议,则最好使用C / C ++或Python。

0 个答案:

没有答案