data.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:gym-kidney 作者: camoy 项目源码 文件源码
def arrive(self, G, rng):
        R = self._ref
        n1 = G.order()
        n2 = rng.poisson(self.m / self.k)
        new = range(n1, n1 + n2)

        # label map
        r_to_g = self._inv(nx.get_node_attributes(G, "r_id"))

        for u in new:
            # add vertex
            r_id = rng.randint(0, R.order())
            attr_u = R.node[r_id]
            attr_u["r_id"] = r_id
            G.add_node(u, attr_u)
            self.stats["%s_patient_arrived" % attr_u["bp"]] += 1
            self.stats["%s_donor_arrived" % attr_u["bd"]] += 1

            # add to label map
            if r_id in r_to_g:
                r_to_g[r_id] += [u]
            else:
                r_to_g[r_id] = [u]

            # edges
            for vs in list(map(r_to_g.get, R.successors(r_id))):
                if vs == None: continue
                for v in vs:
                    G.add_edge(u, v)

            for vs in list(map(r_to_g.get, R.predecessors(r_id))):
                if vs == None: continue
                for v in vs:
                    G.add_edge(v, u)

        self.stats["arrived"] += n2
        return G
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号