zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/W1cS9sgwLFjOOm86d05NIA

     
    介绍各类型节点如何确定星型绑定所包含的连接数。
     
     
    1. 定义
     
    resoveStar方法以抽象方法的形式定义于抽象类MixedNode中,用于确定星型绑定所包含的连接数。
     
    其参数说明如下:
    a. iKnow:输入侧已知边的个数;
    b. oKnow:输出侧已知边的个数;
    c. iStar:输入侧星号的个数;
    d. oStar:输出侧星号的个数;
     
     
    2. SourceNode
     
    SourceNode只能作为上游节点,没有输入边。
    a. iStars = iKnown = 0:没有输入边;
    b. oStars <= 1:输出侧最多只能有一个星型绑定;
    c. po.size == oKnown即所有的边都是已知的,或者oStars = 1即必须有一个星型绑定;
    d. po.size >= oKnown:po.size为全部输出边的数量;
     
    所以返回值:
    a. iStar = 0:没有输入边;
    b. oStar = po.size - oKnown:输出边总数减去已知的输出边数量,即是星型绑定所包含的连接数;
     
     
    3. SinkNode
     
    参考SourceNode。
     
     
    4. MixedAdapterNode
     
     
    因为是一个Mixed节点,所以可以同时有输入边和输出边。
     
    1) oStars+iStars <= 1
     
    输入星和输出星的总数不能超过1;也就是说,要么输入侧有一个星号,要么输出侧有一个星号,要么都没有。
     
    2) oStars > 0
     
    意味着oStars = 1, iStars = 0。也就是说所有输入边已知,需要确定一个输出星所包含的连接数。所以返回值为iStar = 0, oStar = iKnown - oKnown;
     
    这里直接使用iKnown - oKnown进行计算,包含一个假设,即在星号确定之后,输入边的数量与输出边的数量是相等的。
     
    也可以得出另一个结论,mapParamsD和mapParamsU只是进行映射,不改变参数的个数:
     
    注意里面的require(n == p.size),其中的n即是本节点另一侧边的个数:
     
    即oPorts.size == diParams.size。
     
    3) iStars > 0
     
    如2)。
     
    4) oStars = iStars = 0
     
    没有星号,所以返回值都是0:(0, 0)
     
     
    5. MixedNexusNode
     
     
    1) !outputRequiresInput || oKnown == 0 || iStars + iKnown != 0
     
    这个判断为假需同时满足如下三个条件:
    a. outputRequiresInput = true:输出边依赖于输入边;
    b. oKnown > 0:有输出边;
    c. iStars + iKnown = 0:没有输入边;
     
    也就是说有输出边,并且输出依赖于输入边,但却没有输入,只能报错。
     
    2) !inputRequiresOutput || iKnown == 0 || oStars + oKnown != 0
     
    如1)。
     
    3) iKnown = oKnown = 0
     
    既没有已知输入边,也没有已知输出边。无论是否有星型绑定,都认为其包含0条连接。
     
    4) iKnown != 0 || oKnown != 0
     
    有已知输入边或已知输出边。无论是否有星型绑定,都认为其包含1条连接。如果没有星型连接,这个1则不会被统计,总连接数目并不会增加。
     
    5) 输入边的数目和输出边的数目并不一定相同,取决于实际的连接数:
     
    6) 总结
     
    可以看到MixedNexusNode极力想把星型绑定包含的连接数最小化,最好是不出现在图中。若非要出现在图中,则以最少的连接出现。
     
    可能是因为不知道连接总数信息。
     
    理解有限,暂且如此。
  • 相关阅读:
    如何实现浏览器内多个标签页之间的通信?
    vue组件库的基本开发步骤(源代码)
    vue组件库的基本开发步骤
    Websocket原理
    TCP和UDP的区别
    一句话概括 tcp三次握手
    简单说一下你对http和https的理解
    .Ajax(async异步与sync同步)
    get和post请求方式的区别
    面试易忽略状态码
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10480693.html
Copyright © 2011-2022 走看看