精华内容
下载资源
问答
  • 平行建造就是在建筑的建造过程中利用ACP方法,对建造过程进行模拟、实施校正的方法,平行建造的实施可以更好的降低建造过程中的各种风险,从而保证工期,降低成本,提高建造质量。 对于大型复杂工程的建造过程...

    平行建造就是在建筑的建造过程中利用ACP(Artificial systems,computational experiments,parallel execution)方法,对建造过程进行模拟、实施和校正的方法,平行建造的应用可以更好的降低建造过程中的各种风险,从而保证工期,降低成本,提高建造质量。虽然对于大型复杂工程的建造过程本身是一个复杂的过程,做平行建造的难度比较大,但由于信息技术的日益发展,建造过程的平行比起社会工程来说还是简单很多,条件成熟很多:

    1)BIM的应用解决了建造过程中的人工建筑的基础,BIM不仅提供了建筑的空间结构,还提供了丰富的构成建筑的构件信息,解决了ACP中的人工系统的基础部分,剩下的环境,资源的人工就相对容易得多,因为建筑的工艺路径和资源使用都是有限的,是强逻辑关系的,鉴于经验和成本,人工的要素不多。因此,BIM对平行建造提供了一个非常好的人工基础。

    2)BIM的轻量化引擎和三维可视化展示技术也为平行建造提供了基本的系统环境,为人们提供了一个可视化的更为直观的理解和演练工具。建筑设计的二维到三维,大大的降低了人们的认知和理解难度,使得即使是非专业人士都能参与进来。在可期的未来,二维图纸必将慢慢退出历史的舞台(最多作为三维在二维图纸上的输出保留)。

    3)现在计算机的计算能力足够支撑平行建造所需要的计算实验的算力前提,由于平行建造的可变性要素不多(相对于人工社会等复杂人工系统来说),而且逻辑相对简单,所以进行ACP中的C(计算)所需要的计算资源的成本对于普通企业来说是可以承受的。而且由于云计算的发展,这些企业还可以共享云计算能力,可以更进一步的降低使用成本。

    4)5G+物联网传感器的成熟使得模型和现实建筑之间可以实现实时和近于实时的信息同步和对照、比对。这对于ACP中的P是非常有利的。而且三维模型的可操作性和可视化,也为平行建造提供了坚实的技术支撑。虚拟的好处是能够重复,而现实场景的重复往往意味着巨大的成本,但从平行系统减少建造过程中因为一些问题导致的重工,返工这块来说,经济利益就非常巨大(起码10%以上)。

    现在业界也在推数字孪生,平行建造可以说是建造过程中的数字孪生。目前来说做到平行设计是不现实的,但做到建造过程的平行,时机已经成熟。当然,要在建造过程中实现平行过程,就必须对相关的要素进行数字化,其管理核心的进度可以一键生成,可以重复生成。建筑建造过程要素的数字化也不是问题,BIM为建筑本身提供了数字化,而人,设备,环境的数字化由于数量级不大,利用ACP方法中的引擎(Agent)技术完全可以实现的。而进度的一键生成(类似工业制造领域的自动排产),可以借鉴工业制造的MRP思想并结合建筑的工艺路径逻辑来实现也是可行的:利用BIM为基础,做需求分析(算量,总控计划)得到所有建造相关的需求计划,再根据一些资源和流程的设置(资源数,提前量等约束条件)获得进度的一键生成是完全可能的(工业制造领域中这些技术都比较成熟),然后再结合人和物的管理系统就可以提供实际运作或是模拟所需的支撑。

    当然,平行建造也是平行社会中的一部分,但平行社会所需要的巨大计算量不是现在社会所能提供的,但局部的平行还是有机会的。平行建造就是建筑业中的ACP方法的绝佳使用场所。

    展开全文
  • fzu 2231 平行四边形数

    2016-05-02 22:55:49
    要判别一个四边形是否是平行四边形,一个等价的判断条件是 两条边平行且相等,这样就是平行四边形,并且平行具有传递,如果a//b,b//c,那么a//c,那么设g[i]为第i条边已经能组成平行四边形的个数,那么如果j//i且d[j...

    题意:给出n个点,问哪四个点可以组成平行四边形


    思路;要判别一个四边形是否是平行四边形,一个等价的判断条件是 两条边平行且相等,这样就是平行四边形,并且平行具有传递性,如果a//b,b//c,那么a//c,那么设g[i]为第i条边已经能组成平行四边形的个数,那么如果j//i且d[j]==d[i],g[j]=g[i]+1,可以在o(n)下处理,但要提前排好序,有点像dp的重复子问题,细节看代码


    链接:http://acm.fzu.edu.cn/problem.php?pid=2231


    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    const int inf = 0x3f3f3f3f;
    const double eps = 1e-8;
    int x[505], y[505];
    
    typedef long long ll;
    
    struct node
    {
        int x, y;
    }a[505];//存所有的点
    
    struct edge
    {
        int x1,y1,x2, y2,k2,k1;
        ll d;
        double k,b;
    } b[300000];//存的是所有的边 ,最多有500*499条边
    
    int g[300000];
    
    ll cal(int x1, int y1, int x2, int y2)//边长
    {
        return (ll)abs(x1-x2)*abs(x1-x2) + (ll)abs(y1-y2)*abs(y1-y2);
    }
    
    int gcd(int a,int b)
    {
        return b==0?a:gcd(b, a%b);
    }
    
    void calk(int x1, int y1, int x2, int y2,int &x, int &y)//计算该边斜率
    {
        x = x1-x2;
        y = y1 - y2;
        int d = gcd(x, y);
        x/=d, y/=d;
    }
    
    bool cmp(const edge &a, const edge &b)//先按距离排序,再按斜率排序
    {
        if(a.d!=b.d)
            return a.d<b.d;
        else
        {
            return a.k<b.k;
        }
    }
    
    int main()
    {
        int n;
        while(~scanf("%d", &n))
        {
            for(int i=0; i<n; i++)
            {
                scanf("%d%d", &a[i].x, &a[i].y);
            }
            int cnt = 0;
            for(int i=0; i<n; i++)
            {
                for(int j=i+1; j<n; j++)
                {
                    b[cnt].x1 = a[i].x,b[cnt].y1 = a[i].y;
                    b[cnt].x2 = a[j].x,b[cnt].y2 = a[j].y;
                    b[cnt].d =cal(a[i].x, a[i].y,a[j].x,a[j].y;
                    if(b[cnt].x1==b[cnt].x2)
                        b[cnt].k = inf;
                    else
                    {
                        calk(a[i].x, a[i].y,a[j].x,a[j].y, b[cnt].k2,b[cnt].k1);
                        b[cnt].k = (double)b[cnt].k1/b[cnt].k2;
                        b[cnt].b = (double)b[cnt].y1 - b[cnt].k*b[cnt].x1;
                    }
                    cnt++;//y = kx+b;
                }
            }
            int ans =0;
            memset(g, 0, sizeof(g));
            sort(b, b+cnt, cmp);
            for(int i= 1; i<cnt; i++)
            {
                if(b[i].d==b[i-1].d&&(fabs(b[i].k-b[i-1].k)<eps))//两条边边长相等,斜率相等
                {
                    if(b[i].x1==b[i].x2)//平行y轴,则斜率为无限大
                    {
                        if(b[i].x1!=b[i-1].x1) 
                        {
                            g[i]=g[i-1]+1;
                            ans += g[i];
                        }
                    }
                    else if(fabs(b[i].k-0)<eps) //平行x轴, 则斜率为0
                    {
                        if(b[i].y1!=b[i-1].y1)
                        {
                            g[i]=g[i-1]+1;
                            ans += g[i];
                        }
                    }
                    else
                    {
                        if(fabs(b[i].b-b[i-1].b)>eps)//两直线必须保证b不相等,
                        {
                            g[i]=g[i-1]+1;
                            ans += g[i];
                        }
                    }
                }
    
            }
            printf("%d\n", ans/2);//因为一个平行四边有两组边平行且相等,所以重复算了两次
        }
        return 0;
    }
    


    展开全文
  • 序列的相似

    千次阅读 2019-05-04 08:02:20
    序列的相似可以是定量的数值,也可以是定性的描述。相似度是一个数值,反映两条序列的相似程度。关于两条序列之间的关系,有许多名词,如相同、相似、同源、同功、直向同源、共生同源等。在进行序列比较时经常使用...

    序列的相似性可以是定量的数值,也可以是定性的描述。相似度是一个数值,反映两条序列的相似程度。关于两条序列之间的关系,有许多名词,如相同、相似、同源、同功、直向同源、共生同源等。在进行序列比较时经常使用“同源”(homology)和“相似”(similarity)这两个概念,这是两个经常容易被混淆的不同概念。两条序列同源是指它们具有共同的祖先。在这个意义上,无所谓同源的程度,两条序列要么同源,要么不同源。而相似则是有程度的差别,如两条序列的相似程度达到30%或60%。一般来说,相似性很高的两条序列往往具有同源关系。但也有例外,即两条序列的相似性很高,但它们可能并不是同源序列,这两条序列的相似性可能是由随机因素所产生的,这在进化上称为“趋同”(convergence),这样一对序列可称为同功序列。直向同源(orthologous)序列是来自于不同的种属同源序列,而共生同源(paralogous)序列则是来自于同一种属的序列,它是由进化过程中的序列复制而产生的。

    同源基因

    序列比较的基本操作是比对(align)。两条序列的比对(alignment)是指这两条序列中各个字符的一种一一对应关系,或字符对比排列。序列的比对是一种关于序列相似性的定性描述,它反映在什么部位两条序列相似,在什么部位两条序列存在差别。最优比对揭示两条序列的最大相似程度,指出序列之间的根本差异。

    字母表和序列

    在生物分子信息处理过程中,将生物分子序列抽象为字符串,其中的字符取自特定的字母表。字母表是一组符号或字符,字母表中的元素组成序列。一些重要的字母表有:

    (1)4字符DNA字母表 {A, C, G, T};

    (2)扩展的遗传学字母表或IUPAC编码;

    (3)单字母氨基酸编码;

    (4)上述字母表形成的子集。

    下面所讨论的内容独立于特定的字母表。 首先规定一些特定的符号:

    ① A — 字母表;

    ② A* — 由字母表A中字符所形成的一系列有限长度序列或字符串的集合;

    ③ a、b、c — 单独的字符;

    ④ s、t、u、v、x — A*中的序列;

    ⑤ |s| — 序列s的长度。

    为了说明序列s的子序列和s中单个字符,我们在s中各字符之间用数字标明分割边界。例如,设s=ACCACGTA,则s可表示为

    0A1C2C3A4C5G6T7A8 。

    i:s:j 指明第i位或第j位之间的子序列。当然,0 £ i £ j £ |s|。子序列0 : s : i 称为前缀,即prefix(s,i),而子序列 i:s:|s| 称为后缀suffix(s, |s|-i+1)。有两种特殊的情况,即 i=j或i = j-1。

    ① i:s:i 表示空序列

    ② ( j-1):s: j 表示s 中的第j 个字符,简记为sj 。

    一般认为,子序列与计算机算法中子串的概念相当。但是,严格地讲,子序列与子串的概念是有区别的:子串是子序列,而子序列不一定是子串。可以通过选取s中的某些字符(或删除s中的某些字符)而形成s的子序列,例如TTT是ATATAT的子序列。而s的子串则是由s中相继的字符所组成,例如TAC是AGTACA的子串,但不是TTGAC的子串。如果t是s的子串,则称s是t的超串。子串也可以称为连续子序列。

    两条序列s和t的连接用s + + t来表示,如:

    ACC++CTA = ACCCTA

    字符串操作除连接操作之外,另有一个k操作,即删除一个字符串两端的字符。其定义如下:

    prefix(s,l) = sk|s|-l ,

    suffix(s,l) = k|s|-ls ,

    i:s:j = ki-1sk|s|-j 。

    序列比较可以分为四种基本情况,具体任务和应用说明如下:

    (1)假设有两条长度相近的、来自同一个字母表的序列,它们之间非常相似,仅仅是有一些细微的差别,例如字符的插入、字符的删除和字符替换,要求找出这两条序列的差别。这种操作实际应用比较多,例如,有两个实验室同时测定某个基因的DNA序列,其结果可能不一样,需要通过序列比较来比较实验结果。

    (2)假设有两条序列,要求判断是否有一条序列的前缀与另一条序列的后缀相似,如果是,则分别取出前缀和后缀。该操作常用于大规模DNA测序中序列片段的组装。

     

    (3)假设有两条序列,要求判断其中的一条序列是否是另一条序列的子序列。这种操作常用于搜索特定的序列模式。

    (4)假设有两条序列,要求判断这两条序列中是否有非常相似的子序列。这种操作可用于分析保守序列。

    当然,进行序列比较时,往往还需要说明是采取全局比较,还是采取局部比较。全局比较是比较两条完整的序列,而局部比较是找出最大相似的子序列。

    编辑距离(Edit Distance)

    观察这样两条DNA序列:GCATGACGAATCAG和TATGACAAACAGC。一眼看上去,这两条序列并没有什么相似之处,然而如果将第二条序列错移一位,并对比排列起来以后,就可以发现它们的相似性。

    序列比对

    如果进一步在第二条序列中加上一条短横线,就会发现原来这两条序列有更多的相似之处。

    序列比对

    上面是两条序列相似性的一种定性表示方法,为了说明两条序列的相似程度,还需要定量计算。有两种方法可用于量化两条序列的相似程度:一为相似度,它是两条序列的函数,其值越大,表示两条序列越相似;与相似度对应的另一个概念是两条序列之间的距离,距离越大,则两条序列的相似度就越小。在大多数情况下,相似度和距离可以交互使用,并且距离越大,相似度越小,反之亦然。但一般而言,相似度使用得较多,并且灵活多变。

    最简单的距离就是海明(Hamming)距离。对于两条长度相等的序列,海明距离等于对应位置字符不同的个数。例如,下图是3组序列海明距离的计算结果。

    海明距离

    使用距离来计算不够灵活,这是因为序列可能具有不同的长度,两条序列中各位置上的字符并不一定是真正的对应关系。例如,在DNA复制的过程中,可能会发生像删除或插入一个碱基这样的错误,虽然两条序列的其他部分相同,但由于位置的移动导致海明距离的失真。就图3.1中例子最右边的情况,海明距离为6,简单地从海明距离来看,两条序列差别很大(整个序列的长度只有8bp),但是,如果从s中删除G,从t中删除T,则两条序列都成为ACACACA,这说明两条序列仅仅相差两个字符。实际上,在许多情况下,直接运用海明距离来衡量两条序列的相似程度是不合理的。

    为了解决字符插入和删除问题,引入字符“编辑操作”(Edit Operation)的概念,通过编辑操作将一个序列转化为一个新序列。用一个新的字符“-”代表空位(或空缺,Space),并定义下述字符编辑操作:

    Match(a,a) — 字符匹配;

    Delete(a,-) — 从第一条序列删除一个字符,或在第二条序列相应的位置插入空白字符;

    Replace(a,b) — 以第二条序列中的字符b替换第一条序列中的字符a,a¹b;

    Insert(-,b) — 在第一条序列插入空位字符,或删除第二条序列中的对应字符b。

    很显然,在比较两条序列s和t时,在s中的一个删除操作等价于在t中对应位置上的一个插入操作,反之亦然。需要注意的是,两个空位字符不能匹配,因为这样的操作没有意义。引入上述编辑操作后,重新计算两条序列的距离,就成为编辑距离。

    以上的操作仅仅是关于序列的常用操作,在实际应用中还可以引入复杂的序列操作。下面是两条序列的一种比对:

    序列比对

    上述比对不能反映两条序列的本质关系。但是,如果将第二条序列头尾倒置,可以发现两条序列惊人的相似:

    序列比对

    再比如,下面两条序列有什么关系?如果将其中一条序列中的碱基替换为其互补碱基,就会发现其中的关系:

    互补序列

    RNA发式结构

    通过点矩阵分析两条序列的相似之处

    进行序列比较的一个简单的方法是“矩阵作图法”或“对角线作图”,这种方法是由Gibb首先提出的。将两条待比较的序列分别放在矩阵的两个轴上,一条在X轴上,从左到右,一条在Y轴上,从下往上,如图3.2所示。当对应的行与列的序列字符匹配时,则在矩阵对应的位置作出“点”标记。逐个比较所有的字符对,最终形成点矩阵。

    序列比较矩阵标记图

     
    1. 序列比较矩阵标记图

    显然,如果两条序列完全相同,则在点矩阵主对角线的位置都有标记;如果两条序列存在相同的子串,则对于每一个相同的子串对,有一条与对角线平行的由标记点所组成的斜线,如图a中的斜线代表相同的子串“ATCC”;而对于两条互为反向的序列,则在反对角线方向上有标记点组成的斜线,如图b所示。

    相同子串矩阵标记图

     
    1. a:相同子串矩阵标记图

    反向序列矩阵标记图

     
    1. b:反向序列矩阵标记图

    对于矩阵标记图中非重叠的与对角线平行斜线,可以组合起来,形成两条序列的一种比对。在两条子序列的中间可以插入符号“-”,表示插入空位字符。在这种对比之下分析两条序列的相似性,如下图所示。找两条序列的最佳比对(对应位置等同字符最多),实际上就是在矩阵标记图中找非重叠平行斜线最长的组合。

    多个相同连续子序列矩阵标记图

    除非已经知道待比较的序列非常相似,一般先用点矩阵方法比较,因为这种方法可以通过观察矩阵的对角线迅速发现可能的序列比对

    实例一:

    实例二:

    两条序列中有很多匹配的字符对,因而在点矩阵中会形成很多点标记。当对比较长的序列进行比较时,这样的点阵图很快会变得非常复杂和模糊。使用滑动窗口代替一次一个位点的比较是解决这个问题的有效方法。假设窗口大小为10,相似度阈值为8。首先,将X轴序列的第1-10个字符与Y轴序列的第1-10个字符进行比较。如果在第一次比较中,这10个字符中有8个或者8个以上相同,那么就在点阵空间(1,1)的位置画上点标记。然后窗口沿X轴向右移动一个字符的位置,比较X轴序列的第2-11个字符与Y轴序列的第1-10个字符。不断重复这个过程,直到X轴上所有长度为10的子串都与Y轴第1-10个字符组成的子串比较过为止。然后,将Y轴的窗口向上移动一个字符的位置,重复以上过程,直到两条序列中所有长度为10的子串都被两两比较过为止。基于滑动窗口的点矩阵方法可以明显地降低点阵图的噪声,并且可以明确地指出两条序列间具有显著相似性的区域。

    序列比对

    序列的两两比对

    序列的两两比对(Pairwise Sequence Alignment)就是对两条序列进行编辑操作,通过字符匹配和替换,或者插入和删除字符,使得两条序列达到一样的长度,并使两条序列中相同的字符尽可能地一一对应。设两条序列分别是s和t,在s或t中插入空位符号,使s和t达到一样的长度。下图是对序列AGCACACA和ACACACTA的两种比对结果以及对应的字符编辑操作。

    下面就不同类型的编辑操作定义函数w,它表示“代价(cost)”或“权重(weight)”。对字母表A中的任意字符a、b,定义:

    序列权重

    这是一种简单的代价定义,在实际应用中还需使用更复杂的代价模型。一方面,可以改变各编辑操作的代价值,例如,在蛋白质序列比较时,用理化性质相近的氨基酸进行替换的代价应该比完全不同的氨基酸替换代价小;另一方面,也可以使用得分(score)函数来评价编辑操作。下面给出一种基本的得分函数:

    比对算法

    在进行序列比对时,可根据实际情况选用代价函数或得分函数,即选用(3-1)式或(3-2)式。

    下面给出在进行序列比对时常用的概念:

    (1)两条序列s 和 t 的比对的得分(或代价)等于将s 转化为t 所用的所有编辑操作的得分(或代价)总和;

    (2)s 和t 的最优比对是所有可能的比对中得分最高(或代价最小)的一个比对;

    (3)s 和t 的真实距离应该是在得分函数p值(或代价函数w值)最优时的距离。

    使用前面代价函数w的定义,可以得到下列比对的代价:

    s: AGCACAC-A

    t: A-CACACTA

    cost(s,t)= 2

    而使用得分函数p 的定义,可以得到下列比对的得分:

    s: AGCACAC-A

    t: A-CACACTA

    score (s,t)= 5

    进行序列比对的目的是寻找一个得分最高(或代价最小)的比对。

    用于序列相似性的打分矩阵(scoring matrix)

    无论是3-1式还是3-2式,都是简单相似性评价模型,在计算比对的代价或得分时,对字符替换操作只进行统一的处理,没有考虑“同类字符”替换与“非同类字符”替换的差别。实际上,不同类型的字符替换,其代价或得分是不一样的,特别是对于蛋白质序列。某些氨基酸可以很容易地相互取代而不用改变它们的理化性质。例如,考虑这样两条蛋白质序列,其中一条在某一位置上是丙氨酸,如果该位点被替换成另一个较小且疏水的氨基酸,比如缬氨酸,那么对蛋白质功能的影响可能较小;如果被替换成较大且带电的残基,比如赖氨酸,那么对蛋白功能的影响可能就要比前者大。直观地讲,比较保守的替换比起较随机替换更可能维持蛋白质的功能,且更不容易被淘汰。因此,在为比对打分时,我们可能更倾向对丙氨酸与缬氨酸的比对位点多些奖励,而对于丙氨酸与那些大而带电氨基酸(比如赖氨酸)的比对位点则相反。理化性质相近的氨基酸残基之间替换的代价显然应该比理化性质相差甚远的氨基酸残基替换得分高,或者代价小。同样,保守的氨基酸替换得分应该高于非保守的氨基酸替换。这样的打分方法在比对非常相近的序列以及差异极大的序列时,会得出不同的分值。这就是提出打分矩阵(或者称为取代矩阵)的原由。在打分矩阵中,详细地列出各种字符替换的得分,从而使得计算序列之间的相似度更为合理。在比较蛋白质时,我们可以用打分矩阵来增强序列比对的敏感性。打分矩阵是序列比较的基础,选择不同的打分矩阵将得到不同的比较结果,而了解打分矩阵的理论依据将有助于在实际应用中选择合适的打分矩阵。以下介绍一些常用的打分矩阵或代价矩阵。

    1、核酸打分矩阵

    设核酸序列所用的字母表为 A = { A,C,G,T }。

    (1)等价矩阵

    等价矩阵(见表3.1)是最简单的一种打分矩阵,其中,相同核苷酸匹配的得分为“1”,而不同核苷酸的替换得分为“0”(没有得分)。

    (2)BLAST矩阵

    BLAST是目前最流行的核酸序列比较程序,表3.2是其打分矩阵。这也是一个非常简单的矩阵,如果被比的两个核苷酸相同,则得分为“+5”,反之得分为“-4”。

    (3)转换-颠换矩阵

    核酸的碱基按照环结构分为两类,一类是嘌呤(腺嘌呤A,鸟嘌呤G),它们有两个环;另一类是嘧啶(胞嘧啶C,胸腺嘧啶T),它们的碱基只有一个环。如果DNA碱基的变化(碱基替换)保持环数不变,则称为转换(transition),如A->G,C->T;如果环数发生变化,则称为颠换(transversion),如A®C,A®T等。在进化过程中,转换发生的频率远比颠换高,而表3.3所示的矩阵正好反映了这种情况,其中转换的得分为“-1”,而颠换的得分为“-5”。

    核酸打分矩阵

    2、蛋白质打分矩阵

    (1)等价矩阵

    其中,Rij代表打分矩阵元素,i、j分别代表字母表第i个和第j个字符。

    (2)遗传密码矩阵GCM

    GCM矩阵通过计算一个氨基酸残基转变到另一个氨基酸残基所需的密码子变化数目而得到,矩阵元素的值对应于代价。如果变化一个碱基,就可以使一个氨基酸的密码子改变为另一个氨基酸的密码子,则这两个氨基酸的替换代价为1;如果需要2个碱基的改变,则替换代价为2;以此类推(见表3.4)。注意,Met到Tyr的转变是仅有的密码子三个位置都发生变化的转换。在表3.4中,Glx代表Gly、Gln或Glu,而Asx则代表Asn或Asp,X代表任意氨基酸。GCM常用于进化距离的计算,其优点是计算结果可以直接用于绘制进化树,但是它在蛋白质序列比对尤其是相似程度很低的序列比对中很少被使用。

    蛋白打分矩阵

    (3)疏水矩阵

    该矩阵(见表3.5)是根据氨基酸残基替换前后疏水性的变化而得到得分矩阵。若一次氨基酸替换疏水特性不发生太大的变化,则这种替换得分高,否则替换得分低。

    疏水矩阵

    (4)PAM矩阵

    为了得到打分矩阵,更常用的方法是统计自然界中各种氨基酸残基的相互替换率。如果两种特定的氨基酸之间替换发生得比较频繁,那么这一对氨基酸在打分矩阵中的互换得分就比较高。PAM矩阵就是这样一种打分矩阵。PAM矩阵是第一个广泛使用的最优矩阵,它是基于进化原理的,建立在进化的点接受突变模型PAM(Point Accepted Mutation)基础上,通过统计相似序列比对中的各种氨基酸替换发生率而得到该矩阵。Dayhoff和她的同事们研究了71个相关蛋白质家族的1572个突变,发现蛋白质家族中氨基酸的替换并不是随机的,由此,断言一些氨基酸的替换比其他替换更容易发生,其主要原因是这些替换不会对蛋白质的结构和功能产生太大的影响。如果氨基酸的替换是随机的,那么,每一种可能的取代频率仅仅取决于不同氨基酸出现的背景频率。然而,在相关蛋白中,存在取代频率大大地倾向于那些不影响蛋白质功能的取代,换句话说,这些点突变已经被进化所接受。这意味着,在进化历程上,相关的蛋白质在某些位置上可以出现不同的氨基酸。

    一个PAM就是一个进化的变异单位,即1%的氨基酸改变。但是,这并不意味着经过100次PAM后,每个氨基酸都发生变化,因为其中一些位置可能会经过多次改变,甚至可能变回到原先的氨基酸。因此,另外一些氨基酸可能不发生改变。PAM有一系列的替换矩阵,每个矩阵用于比较具有特定进化距离的两条序列。例如,PAM-120矩阵用于比较相距120个PAM单位的序列。一个PAM-N矩阵元素(i,j)的值反映两条相距N个PAM单位的序列中第i种氨基酸替换第j种氨基酸的概率。从理论上讲,PAM-0是一个单位矩阵,主对角线上的元素值为1,其它矩阵元素的值为0。其他PAM-N矩阵可以通过统计计算而得到。首先针对那些确信是相距一个PAM单位的序列进行统计分析,得到PAM-1矩阵。PAM-1矩阵对角线上的元素值接近于1,而其它矩阵元素值接近于0。例如,可以按下述方法构建PAM-1矩阵。首先,构建一个序列间相似度很高(通常大于85%)的比对。接着,计算每个氨基酸j的相对突变率mj。相对突变率就是某种氨基酸被其它任意氨基酸替换的次数。比如,丙氨酸的相对突变率是通过计算丙氨酸与非丙氨酸残基比对的次数来得到。然后,针对每个氨基酸对i和j,计算氨基酸j被氨基酸i替换的次数。最后,将以上替换次数除以对应的相对替换率,利用每个氨基酸出现的频度对其进行标准化,并将以上计算结果取常用对数,于是得到了PAM-1矩阵中的元素PAM-1(i,j)。这种矩阵被称作对数几率矩阵(log odds matrix),因为其中的元素是根据每个氨基酸替换率的对数值来得到的。

     

    将PAM-1自乘N次,可以得到矩阵PAM-N。虽然Dayhoff等人只发表了PAM-250,但潜在的突变数据可以外推至其他PAM值,产生一组矩阵。可以根据待比较序列的长度以及序列间的先验相似程度来选用特定的PAM矩阵,以发现最适合的序列比对。一般,在比较差异极大的序列时,通常在较高的PAM值处得到最佳结果,比如在PAM-200到PAM-250之间,而较低值的PAM矩阵一般用于高度相似的序列。实践中用得最多的且比较折衷的矩阵是PAM-250。

    PAM矩阵

    (5)BLOSUM矩阵

    BLOSUM矩阵是由Henikoff首先提出的另一种氨基酸替换矩阵,它也是通过统计相似蛋白质序列的替换率而得到的。PAM矩阵是从蛋白质序列的全局比对结果推导出来的,而BLOSUM矩阵则是从蛋白质序列块(短序列)比对而推导出来的。但在评估氨基酸替换频率时,应用了不同的策略。基本数据来源于BLOCKS数据库,其中包括了局部多重比对(包含较远的相关序列,与在PAM中使用较近的相关序列相反)。虽然在这种情况下没有用进化模型,但它的优点在于可以通过直接观察而不是通过外推获得数据。同PAM模型一样,也有一系列的BLOSUM矩阵,可以根据亲缘关系的不同来选择不同的BLOSUM矩阵进行序列比较。然而,BLOSUM矩阵阶数的意义与PAM矩阵正好相反。低阶PAM矩阵适合用来比较亲缘较近的序列,而低阶BLOSUM矩阵更多是用来比较亲缘较远的序列。一般来说,BLOSUM-62矩阵适于用来比较大约具有62%相似度的序列,而BLOSUM-80矩阵更适合于相似度为80%左右的序列。

    BLOSUM矩阵

    展开全文
  • Chain33首创的平行链架构

    千次阅读 2021-06-08 09:48:41
    Chain33在公链基础上采用平行链架构,是在考虑了POWPOS机制的利弊后,综合考量之下设计的。因为很多人以为,只要搭几个节点,或者买点矿机挖矿,就可以保证公链安全。但事实上,频频发生的数字货币被盗事件说明,...

    首创的平行链架构

    Chain33用了5年时间设计出平行链架构,这是国内首创并实现的平行链概念。同年九月,百度发布的《区块链白皮书 V1.0》中,也提出了平行链,随后平行链概念相继被同业者引用。

    Chain33在公链基础上采用平行链架构,是在考虑了POW和POS机制的利弊后,综合考量之下设计的。因为很多人以为,只要搭几个节点,或者买点矿机挖矿,就可以保证公链安全。但事实上,频频发生的数字货币被盗事件说明,就算是当前大众认为最安全的PoW机制,其实只要一个大的矿池被攻击就可以夺走你的主控权。而PoS的问题是,参与的人必须足够多,挖矿节点足够分散,否则若没有足够多的人达成共识,也会对网络安全造成影响。平行链架构的设计,既能保证主链的安全,又能提升主链的运行效率。

    平行链的一大特点是分开数据存证和业务逻辑,提升运行效率。主链上只放指令和结果,不放虚拟机,较为复杂的业务逻辑则放在平行链上实现,这样做的好处是若平行链性能出现问题或者智能合约被攻击,都不会影响主链的稳定运行。

    但这并不代表平行链完全受制于主链,它亦是一条相对独立的区块链网络,可以编写多种智能合约,如发行各种Token、开发Dapp、拥有独立的钱包、独立的区块链浏览器等等,平行链的交易由自己的节点来验证、校对,而不影响主链。

    C 第一个区块链发明专利:钱包找回功能

    2014 年复杂美申请了第一个区块链发明专利:钱包找回功能,并在2017 年 12 月获得授权。

    而这项技术也被应用在Chain33中,钱包找回功能解决了因私钥丢失而导致数字资产损失的问题。当用户因遗失钱包或者存储设备突然损坏导致私钥丢失,可以通过低权限的备用私钥(自己保存或者托管给信任的机构/人)找回自己的数字货币,找回指令并不会立刻转移数字资产,而是会在预告一段时间后生效,所以若备用私钥被冒用,用户也可及时发现,并用原私钥将数字资产转移到安全钱包,避免损失。

    D 隐私保护功能

    区块链技术不可篡改、分布式的特质,的确能够避免用户的隐私被中心化机构掌握从而导致被贩卖、被黑客攻击等的问题,但公开透明的账本,却让海量用户数据在链上曝光,隐私问题依旧如空中阁楼,没有得到根本解决。打个比方,原来在淘宝上购物,现在去中心化,不通过淘宝交易,甲乙双方直接邮寄。虽然没有淘宝没有掌握这两者交易的数据,但是他们交易数据被记录在区块链网络上,任何人都可以查看。

    基于账户和UTXO混合模型,Chain33实现了区块链隐私交易系统,在使用UTXO系统的同时,保留了账户体系,加入环签名和一次性地址,让账户在隐私和公开之间自由流转,同时具备不可追踪性和不可连接性。

    E 专利众多

    复杂美拥有国产技术,100%自有知识产权,目前已累计申请了500多项区块链技术的发明专利,其中有60多项已经获得授权,全球排名前十。

    2.5 Chain33的开发语言

    Chain33的开发主要使用go语言,主要从以下几个点来考量:

    A 语言成熟度的考虑

    一个语言是一个成熟的语言,一个重要的标志就是开发过非常大型的系统。云计算领域的两个核心系统 docker 和 k8s 都是用go 语言开发的。目前大部分区块链系统也是选择用go语言开发,可以说,要做区块链,go语言是必须要学的一种语言。

    B开发人员的数量

    一个语言的入门成本比较低,但是要精通类库和最佳实践,必须要经过数年的学习时间。所以非常小众的语言肯定不在考虑在内,目前go语言在全世界多如牛毛的语言中排行第十名,受到较多的开发者肯定。

    C 语言的工程特性

    Go语言在设计的时候,就考虑到了工程实践的问题,一个问题的解决方案基本上都只有一种写法,甚至只是把 if 写成这样都是非法的。go 提供了 gofmt, 会自动格式化代码,这样每个人写出的代码风格都非常一致,互相交流起来就不会有障碍。

    D 面向大部分普通程序员

    选择go语言的一个很重要的原因,就是一个中等水平的程序员,就能写出非常不错的go代码。这主要的原因还是go语言非常简单,特性非常的少,官方类库又非常丰富,大部分程序员都可以非常容易的上手开发。

    2.6 Chain33的应用与生态-基于chain33的成功案例

    Chain33开发平台可用于公链、联盟链及私链开发部署,以及各类商业场景的DAPP应用开发。

    公链案例:目前,chain33上已经成功搭建的公链案例包括:比特元区块链网络(BTY),企业级区块链SaaS平台-原链(YCC),Dapp开发者可基于以上公链开发,或自主部署公链、平行链;

    比特元BTY官网地址:https://www.bityuan.com/

    原链YCC官网地址:https://www.yuan.org/

    联盟链、私链案例:小米与复杂美合作的联盟链等。

    平行链案例:上链购-区块链商城、chat33-区块链聊天社交软件、火食-区块链进口食材溯源系统、艺术藏品行业-金丝楠木链、工业锅炉及节能产业-节能链、星晴-区块链医疗智能穿戴设备、区块链游戏—游戏竞猜剪刀石头布等平行链。

    各类商业场景的区块链结合:Chain33的性能已证明足以支持商业级应用,包括供应链金融、仓单交易、票据撮合系统等,并可应用在多种产业,如:制造业、物流业、金融业等,不同的产业可在不同的平行链上开发公链,平行链和平行链之间不相互影响。

    供应链系统应用:1、区块链应收款2、区块链预付款3、供应链金融与管理平台

    金融租赁、金融仓储区块链平台:区块链仓单抵押流转与融资、区块链金融租赁等

    区块链积分,支付系统

    区块链交易所等

    2.7 市场对比

    2.7.1 整体结构对比

    以目前市场上较为知名且成熟的石墨烯和Fabric为例,整体结构对比如下:

    2.7.2 技术特点及架构对比

    以太坊和超级账本是比较成熟的区块链平台,Chain33和两者的对比情况如下:

    A 以太坊智能合约部署过程

    搭建以太坊私链环境,生成私链的创世区块;

    启动私链,生成一个初始的以太币账户,开始挖矿(挖矿需要一个账户接收以太币);

    编写智能合约,solidity和mix语言;

    编译智能合约,单个文件的简单合约可以在线编译,多个文件需要借助solc(编译成字符串,全网同步);

    部署,合约部署当作一笔交易记录再链上,需要支付一定以太币,并且运行需要gas。

    B 超级账本智能合约部署过程

    规划好联盟链的组织形式, 再编辑fabric的配置文件(包括:相关证书文件,系统通道初始区块,应用通道交易文件,锚节点配置更新交易文件等)

    编辑好docker-compose文件(需要理解里面各参数的含义, 目前fabric开源代码里的共识只支持kafka和raft), 启动4个peer节点,一个order节点组成一个kafka集群。

    部署fabric对应的SDK程序。

    编写fabric的智能合约。

    通过SDK来创建channel,把上面启动的peer节点加入到channel,同时安装并初始化chaincode(智能合约),在各个节点部署并初始化智能合约

    执行智能合约。

    C Chain33的智能合约部署过程

    GO语言部署方式:

    编写GO语言的智能合约,和chain33一起编译成二进制文件。

    通过接口调用智能合约来执行智能合约。

    EVM的部署方式:

    用Solidity编写智能合约。

    通过chain33提供的接口将智能合约部署到chain33的EVM虚拟机中。

    通过接口调用EVM合约来执行智能合约。

    WASM的部署方式:

    用C++编写智能合约。

    通过chain33提供的接口将智能合约部署到chain33的WASM虚拟机中。

    通过接口调用WASM合约来执行智能合约。

    JSVM的部署方式:

    用Javascript编写智能合约。

    通过chain33提供的接口将智能合约部署到chain33的JSVM虚拟机中。

    通过接口调用JSVM合约来执行智能合约。

    系统间横向对比

    名称

    Chain33

    以太坊

    EOS

    超级账本

    特点

    1、轻量级框架,功能易扩展,支持可插拔的共识配置,适用于公链,联盟链和私链

    2、独创的平行链架构设计,使系统安全、稳定、高效。

    1. 第一条实现智能合约的区块链。

    2. 性能问题,只适用于小规模的项目。

    3. DPOS的共识,及超级节点的高性能配置,使得它共识效率较高,速度较快。

    4. 超级节点的高配置导致服务器的成本很高。

    5. 适用于联盟链,系统中的CA, 数据库,共识可插拔

    6. 框架比较重量级,不是非常理解内核的,无法进行比较大的定制。

    共识机制

    公链:POS(BTY), DPOS+BFT(YCC)

    联盟链:tendermint, pbft

    私链:raft

    POW逐渐转向POS

    DPOS共识

    Kafka, raft

    平台语言

    Go

    Go

    C++

    Go

    智能合约

    支持以下4种智能合约:

    1.GO原生语言,适用于大规模复杂的合约逻辑

    2.EVM(Solidity编写智能合约),兼容以太坊上的合约

    3.WASM(C++编写智能合约),兼容EOS上的合约

    4.JSVM(Javascript编写智能合约),Javascript开发者众多,降低区块链开发门槛,一个JS程序员就可单独进行Dapp开发,快速并提高开发效率

    Solidity编写合约,无日志,难调试,修复代码错误难度较大

    C++语言编写

    Docker中部署

    任何语言可写,实现各种功能相对灵活

    跨链支持

    支持主链和平行链跨链

    MTP跨链

    支持侧链

    不支持垮链验证,无法和超级账本以外的链相连

    部署难度

    简单

    相对简单

    相对简单

    相对复杂

    扩展性

    差(设计缺陷)

    签名算法

    相比于后几者,还支持国密SM2,ed25519, 环签名

    secp256k1

    secp256k1

    secp256r1

    存储性能

    存储合理,可扩展分布式数据库,读写快。数据库支持:Leveldb, ssdb, pegasus

    单一leveldb存储

    存储合理,可扩展分布式数据库,读写快

    存储合理,可扩展分布式数据库,读写快

    企业级应用

    1. 共识可插拔,可以支持联盟链的共识

    2. 支持CA认证,以及平行链的架构兼顾了共享和隐私,适用于企业级的应用。

    更适合做公链,企业级应用只适用于小规模项目

    适合于公链应用,目前大量的应用都是博彩类。

    不适合用于企业级应用:1. 企业级应用对于数据隐私和监管有较高要求,大量数据和博彩类数据杂糅在一起,不利于监管。2. 如果要单独搭建一套EOS平台,服务器成本过高。

    联盟链,适用于企业级应用

    安全漏洞

    已经在和安全公司合作对chain33的安全性做测评, 目前未发现安全漏洞。

    Solidity语言设计漏洞

    (the DAO)

    大量的安全问题,已经发生多起博彩类应用被黑客攻击

    暂无

    开发成本

    开发速度快,官方提供很多可插拔的插件,减少重复开发开发语言支持GO, Solidity, C++。

    开发相对容易,但性能受限。

    支持C++语言开发合约,开发效率高于fabric和以太坊

    通用性接口多,难以熟悉,开发成本高,团队人员分散,解决问题慢

    开源协议

    BSD 3

    LGPL3.0

    BSD 3

    Apache 2.0

    落地项目

    案例较多,多家500强的实际案例

    比较少,以公链为主

    案例较多,大多是博彩类应用

    案例较多

    团队情况

    有稳定的国内团队,所有代码都是团队人员自行开发,可以对区块链进行深度定制,解决问题速度较快。

    开发团队分散在全球各地,很难进行深度定制, 遇到问题不容易解决。

    开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。

    开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。

    3、技术开发团队介绍

    33复杂美公司成立于2008年,拥有撮合交易系统低延时、高并发的核心技术。2013 年启动区块链、智能合约的研发与创新,2014 年申请第一个区块链发明专利:钱包找回功能,并在2017 年 12 月获得授权。目前已累计申请了500多项区块链技术的发明专利,其中有60多项已经获得授权,全球排名前十。

    公司总部位于杭州,并在上海、南京设立分部。目前,公司约有200 人,多数为技术人员,吸引了一批甲骨文、阿里等高管及程序员加盟。

    4、总结

    Chain33开发者平台,致力于为开发者呈现一个易上手、高性能、稳定、安全的区块链底层系统,具有近500多项区块链专利,全球排名前十。经过5年潜心研究与开发,首创了平行链架构及模块化体系,主链进行存证,平行链处理业务逻辑,极大提升了区块链网络的性能、安全性及稳定性。

    使用chain33开发者平台,可用于开发部署公链、联盟链及私链,以及各类商业场景的区块链解决方案和商业应用,如供应链金融、资产上链、各类DAPP等。

    现Chain33已全面开源,面向全球的开发者开放,任何开发者都可以上Github(https://github.com/33cn/chain33)查看Chain33的代码,加入Chain33的开发者社区。

    展开全文
  • 针对实际桥梁中使用最为广泛的一类斜拉索类型-平行钢丝索,结合其生产工艺特点,提出了一种复合FBG...重复性及灵敏性,对该智能斜拉索应用于实际桥梁工程进行了初步的可行性验证,显示了此种智能斜拉索的广阔应用前景。
  • GitChat 作者:吴穹 AdamWu 这篇文章将先介绍 Cynefin 框架,一个领导者决策框架。领导者要面对显然...目前,创新过程中最大问题就在于领导者将适用于显然繁杂领域的确定管理思维直接照搬到复杂混沌领域。
  • 针对本厂惯用的平行样测定灰分检查精密度与国标规定的重复性测定灰分检查精密度两种方法的试验结果进行了观察统计,并利用成对数据对比法对试验结果进行了分析,结果表明,在95%概率下两种测定方法无显著性差异。
  • 信号完整分析

    热门讨论 2013-12-11 17:28:53
    ·信号完整性和物理设计概论 ·带宽、电感和特性阻抗的实质含义 ·电阻、电容、电感和阻抗的相关分析 ·解决信号完整性问题的四个实用技术手段:经验法则、解析近似、数值模拟、实际测量 ·物理互连设计对信号...
  • 在机器学习以及很多应用场景里面各种相似、分类相关的距离数学公式的原理
  • 针对遥感图像数据量大和现有机场检测方法存在的不足,提出了一种去除重复模式,融合直线显著性和区域显著性的机场检测方法。首先利用改进的基于超复数傅里叶变换的显著性模型,去除遥感图像中的重复模式,减少后续...
  •   当年主要是在 「 杭电OJ 」 「 北大OJ 」 这两个在线平台上刷题,那时候还没有(「 LeetCode 」、「 牛客 」、「 洛谷 」 这些先如今非常的刷题网站),后来参加工作以后,剩余的时间不多了,也就没怎么刷了...
  • Parallel Inheritance Hierarchies其实是shotgun surgery的特殊情况。在这种情况下,每当你为某个class增加一个subclass,必须也为另一个class...消除这种重复性的一般策略是:让一个继承体系的实体(instance)指涉
  • 区间DP入门及平行四边形优化

    千次阅读 2018-07-31 11:07:07
    区间DP, 指的就是对区间的DP, 主要的思想是依旧是最优子结构无后效的确保, 一般思路就是先对小区间进行操作得到最优解, 然后通过小区间的最优解来得到大区间的最优解。 利用dp[i][j]数组来表示从 i 到 j ...
  • 距离相似度度量方法

    万次阅读 多人点赞 2015-05-11 23:05:12
    在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。 不同距离...
  • 在日常工作中,可按照样品的复杂程度、所用方法仪器的精度以及分析操作的技术水平等因素安排平行样的数量。条件允许时,应全部做平行双样分析。否则,至少按同批测试的样品数,随机抽取10%-20%的样品进行平行双样...
  • 软件工程导论—可行研究

    千次阅读 多人点赞 2020-05-03 23:00:29
    文章目录1. 可行研究的任务2. 可行研究过程2.1....可行研究实质上是要进行一次简化了的系统分析设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析设计的过程。 并非任何问题都有简...
  • 平行性测试。 当使用剖面分析代替单变量重复测量方差分析时,并行性测试是交互性测试。 --2. 无论各组是否产生平行资料,平均而言,一组在收集的测量集上的得分是否高于另一组?:水平差异测试。 在
  • 光的波粒二象

    千次阅读 2019-10-14 10:19:17
    虽然笛卡儿更强调媒介对光的影响作用,但他的这两种假说已经为后来的微粒说波动说的争论埋下了伏笔。 格里马第发现了光的衍射现象 首先发现了光的衍射现象。据此他推想光可能是与水波类似的一种流体。格里马第...
  • 分布式系统的接口幂等设计

    万次阅读 2017-05-02 18:00:22
    概念幂等, Idempotence, 这个词来源自数学领域, 百科 上一元运算的幂等解释如下: > 设 f 为一由 {x} 映射至 {x} 的...幂等衍生到软件工程中, 它的语义是指: 函数/接口可以使用相同的参数重复执行, 不应该影响
  • ·信号完整性和物理设计概论 ·带宽、电感和特性阻抗的实质含义 ·电阻、电容、电感和阻抗的相关分析 ·解决信号完整性问题的四个实用技术手段:经验法则、解析近似、数值模拟、实际测量 ·物理互连设计对信号完整性...
  • 221.Beta多样PCoANMDS排序

    千次阅读 多人点赞 2020-06-29 07:00:00
    Beta多样与PCoANMDS排序本节作者:文涛,刘永鑫版本1.0.4,更新日期:2020年6月27日本项目永久地址:https://github.com/YongxinLiu/Mi...
  • 主要讲述了信号完整性和物理设计概论,带宽、电感和特性阻抗的实质含义,电阻、电容、电感和阻抗的相关分析,解决信号完整性问题的四个实用技术手段,物理互连设计对信号完整性的影响,数学推导背后隐藏的解决方案,...
  • 认知升级 - 第一原理

    千次阅读 2018-04-14 17:24:23
    第一原理 First Principles:在每一系统的探索中,存在第一原理,是一个最基本的命题或假设,不能被省略或删除,也不能被违反。
  • 主要讲述了信号完整性和物理设计概论,带宽、电感和特性阻抗的实质含义,电阻、电容、电感和阻抗的相关分析,解决信号完整性问题的四个实用技术手段,物理互连设计对信号完整性的影响,数学推导背后隐藏的解决方案,...
  • 【稳定day2】当当网的高可用之道

    千次阅读 2020-02-18 13:36:36
    今天我们的主题是当当高可用架构设计之道,高可用并不是功能的需求,而是传统的IT当中非功能需求的一部分。大家可以看到我这里罗列了很多非功能需求,但是这当中并没有「高可用」这三个字。 举一个例子,...
  • 基于倍福TwinCAT的平行四边形码垛机器人控制系统设计与实现 倍福技术之星俱乐部    基于倍福TwinCAT的平行四边形码垛机器人控制系统设计与实现 德国倍福 王进,王建成,孔惠增 摘要 目前国内的平行四边形...
  • 这是白话区块链的第1383期原创嘉宾|Parity 亚洲商务运营负责人Helena嘉宾|Patract CMO Santry Huang主持|白话区块链三黎出品|白话区块链(ID:he...
  • SPSS实现重复测量方差分析

    千次阅读 2020-10-03 23:38:53
    SPSS实现重复测量方差分析目的适用情景数据处理SPSS操作知识点 目的 观察一个指标是否因为多次测量而变化,或是否受时间影响。 适用情景 方差分析前提: 各个总体服从正态分布 各个总体方差相等 观测值独立 数据...
  • 深度学习机器学习的相关资料

    千次阅读 2017-04-01 16:18:00
    这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似。 《机器学习经典论文/survey合集》 介绍:看题目你已经知道了是什么内容,没错。里面有很多经典的机器学习...
  • 距离相似度量机器学习中的相似度量 马氏距离的几张截图 漫谈机器学习中距离相似度量方法 距离度量分类体系 本篇文章并不打算描述所有这些类别,要具体阐述它们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,704
精华内容 9,081
关键字:

平行性和重复性