算法

AIops相关算法

我是研究僧i 提交于 2020-03-03 01:14:07
文章目录 根因分析 清华FOCUS:找影响系统性能瓶颈的原因 MSRA iDice:多维指标突变定位 清华Hotspot:多维根因定位 智能变更 清华FUNNEL:评估变更影响 异常检测 雅虎EGADS:KPI异常检测框架 清华Opprentice:KPI自动化异常检测 清华DeepLog: 日志异常检测 清华StepWise:指标模式漂移后的准确异常检测 故障预测 IBM: 磁盘故障预测 聚类 微软Yading:时序数据聚类算法 微软LogCluster:日志聚类 清华FT-Tree:提取日志模板 清华ROCKA:KPI聚类 最近要面阿里云的弹性计算部门,貌似会用到AIops,所以复习和学习一下之前实习公司的一些成果,本文基本都来自于公众号《智能运维前沿》,公众号由清华netman实验室和必示科技维护。 根因分析 清华FOCUS:找影响系统性能瓶颈的原因 focus 瓶颈:30%的用户的搜索响应时间大于1秒钟 单维分析的局限性:只简单的分析单维数据很难发现系统真正的性能瓶颈 多维分析:第二列表示该条件下的 高响应延迟(HSRT)占总的高响应延迟(HSRT)的比例,可以看出页面所含的图片数量是主要的性能瓶颈 FOCUS: 首先FOCUS使用系统每天产生的日志数据来训练决策树,从决策树中可以分析得到引发高搜索响应时间(HSRT)的条件,由于每天的数据会训练出一棵决策树

PHP加密函数

允我心安 提交于 2020-03-03 00:47:02
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 复制代码 代码如下: $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: 复制代码 代码如下:

PHP加密函数

旧城冷巷雨未停 提交于 2020-03-03 00:46:45
单向散列加密 单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出.这个散列计算是单向的,即不能对固定长度的输出进行计算从而获取输入信息. 特征:雪崩效应、定长输出和不可逆 作用:确保数据的完整性 MD5 :以 32 字符十六进制数字形式返回散列值。( 如果第二个参数为true,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 ***由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。详细内容参见 附录2 。 ) crypt :单向字符串散列。( 如果第二个参数没有,创建出的会是弱密 码,php5.6之后没有会抛出E_NOTICE 级别的错误。为了更 好的安全性,请确保指定一个足够强度的盐值。 ) 附录1 sha1 :以 32 字符十六进制数字形式返回散列值。( 如果第二个参数为true,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 ***由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。详细内容参见 附录2 。 ) 对称加密 对称加密是指加密和解密使用的密钥是同一个或者可以互相推算. urlencode :编码 URL 字符串(除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)) urldecode :解码已编码的 URL 字符串 base64

基于用户的协同过滤推荐算法原理和实现

依然范特西╮ 提交于 2020-03-03 00:13:29
在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单。该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。 本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人。 基本思想 俗话说“物以类聚、人以群分”,拿看电影这个例子来说,如果你喜欢《蝙蝠侠》、《碟中谍》、《星际穿越》、《源代码》等电影,另外有个人也都喜欢这些电影,而且他还喜欢《钢铁侠》,则很有可能你也喜欢《钢铁侠》这部电影。 所以说,当一个用户 A 需要个性化推荐时,可以先找到和他兴趣相似的用户群体 G,然后把 G 喜欢的、并且 A 没有听说过的物品推荐给 A,这就是基于用户的系统过滤算法。 原理 根据上述基本原理,我们可以将基于用户的协同过滤推荐算法拆分为两个步骤: 1. 找到与目标用户兴趣相似的用户集合 2. 找到这个集合中用户喜欢的、并且目标用户没有听说过的物品推荐给目标用户 1. 发现兴趣相似的用户 通常用 Jaccard 公式或者余弦相似度计算两个用户之间的相似度。设 N(u) 为用户 u 喜欢的物品集合,N(v) 为用户 v 喜欢的物品集合,那么 u 和 v 的相似度是多少呢: Jaccard 公式: 余弦相似度:

Java回收机制与回收算法

孤人 提交于 2020-03-02 22:31:54
害!为啥写这篇文章呢?今天阿里实习Java技术面电话面试问到了Java回收机制,自己明明视频了解过,可当时却没想起来,狼狈至极,写个文章加深一下印象! Java的内存回收和C++有所不同,C++没有自动回收机制,申请的空间需要自己手动释放,而Java不同,有着垃圾回收机制,程序员在编写程序时,如果不想用某个对象,只需赋值为null,Java内存回收机制就会把无用对象申请的空间释放。 Java垃圾回收机制依赖垃圾回收算法寻找无用对象,无论哪种垃圾回收算法,都有两个步骤: 找到无用对象 回收无用对象占用的空间 以我浅薄的知识,暂时了解的两种垃圾回收算法: 引用计数法 根搜索算法(引用可达法) 接下来详细的聊一聊算法具体内容: 1、 引用计数法:   堆中的每个对象都有一个引用计数,每被引用一次,计数加一,引用其的变量值设为null,引用值减一,当引用计数为零时,对象就变为无用对象。   优点:简单   缺点:循环引用的无用对象无法被识别 2、根搜索算法   引用关系被程序看做一张图,从GC ROOT开始向下搜索,形成一条引用链,一系列的GC ROOT形成一系列的引用链,如果一个对象到这些引用链不可达,则被认为无用对象。   能被看做GC ROOT的对象有:     (1)虚拟机栈中引用的对象     (2)方法区中类静态属性引用的对象     (3)方法区中常量引用的对象     (4

自动垃圾收集机制

走远了吗. 提交于 2020-03-02 21:25:44
java的GC机制是和其内存模型相关联的,而GC的核心内存区域是内存中的堆区。 java堆区按对象的存活时间被分为了年轻代(eden区+s0区+s1区)和老年代(tentired区),java堆的按代区分其实是为了其垃圾回收的分代收集机制打开了方便之门。java的GC收集器会在不同的分代上使用不同的垃圾收集策略。 GC其实主要需要解决两个问题:哪些是垃圾?如何清理垃圾? 在解决这两个问题上涉及到下面的方法论: 1.垃圾对象判定方法   引用计数法:在C++的智能指针中使用了这种方式去做内存的自动回收。即在对象生成时维护一个对该对象引用次数的计数器,对象初次生成时计数器值为1,每增加一个到该对象的引用,计数器加1,每减少一个引用(如引用变量赋值null,或引用变量离开作用域),计数器减1,计数器为零时,对象内存会被自动回收。该方法的问题是存在内存泄漏的隐患,如对象相互引用、循环引用等情况   可达性分析法:通过一系列的称为 “GC Roots” 的对象作为起点,搜索这些节点引用的对象,以及这些引用对象内部属性引用的对象,相当于从一个树形结构的根部进行遍历。节点所走过的路径称为引用链,当一个对象处于引用链上,就被判断为可用对象。其它的对象就是要被清理的无用对象。目前jvm都是采用这种方式进行垃圾对象的判断的。 补充说明:引用计数和可达性分析我觉得有点像黑名单和白名单两种思路

策略模式

末鹿安然 提交于 2020-03-02 20:04:24
什么是策略模式? 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方法调用所有的的算法,减少了各种算法类与使用算法类之间的耦合。 策略模式优化了简单的单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。 什么时候使用策略模式? 当不同的行为堆砌在一个类中时,就很难使用条件语句来选择合适的行为。将这些行为封装在一个个独立的Strategy类中,可以在使用这些行为的类中消除条件语句。 策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析的过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。 来源: https://www.cnblogs.com/yangqizhong/archive/2010/04/01/1702347.html

数据结构与算法(一)

ぃ、小莉子 提交于 2020-03-02 18:34:21
基本概念 数据(data) :是描述客观事物的数值、字符以及能输入到机器并且被处理的各种符号的集合。数据的含义非常广泛,除了通常的数值数据、字符、字符串外,声音,图像等一切可以输入计算机并且能被处理的都是数据。例如表示人的姓名,身体,体重等的字符、数字是数据,人的照片,指纹,语音指令等也是数据。 数据元素(data element):是数据的基本单位,是数据集合的个体,在计算机程序中通常被作为一个整体来处理。 //未完待续 来源: https://www.cnblogs.com/xiaoyangxiaoen/p/12397102.html

墨尘目标检测3--SSD模型解析及训练自己的数据集

本小妞迷上赌 提交于 2020-03-02 16:34:43
什么是SSD目标检测算法 SSD是一种非常优秀的one-stage目标检测方法,one-stage算法就是目标检测和分类是同时完成的,其主要思路是利用CNN提取特征后,均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,物体分类与预测框的回归同时进行,整个过程只需要一步,所以其优势是速度快。 但是均匀的密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡(参见Focal Loss),导致模型准确度稍低。 SSD的英文全名是Single Shot MultiBox Detector,Single shot说明SSD算法属于one-stage方法,MultiBox说明SSD算法基于多框预测。 来源: CSDN 作者: 我是尘客哥 链接: https://blog.csdn.net/icomma/article/details/104548494

算法提高 最长滑雪道

会有一股神秘感。 提交于 2020-03-02 13:13:27
#include<iostream> using namespace std; struct point { int x; int y; }; int n,m; int max1=0; int graph[10][10]; int mark[10][10]={0}; void getlen(int x,int y,int len) { int flag=0; if(x-1>=0 && mark[x-1][y]!=1) { if(graph[x-1][y] < graph[x][y]) { mark[x-1][y]=1; getlen(x-1,y,len+1); mark[x-1][y]=0; flag=1; } } if(x+1<n && mark[x+1][y]!=1) { if(graph[x+1][y] < graph[x][y]) { mark[x+1][y]=1; getlen(x+1,y,len+1); mark[x+1][y]=0; flag=1; } } if(y-1>=0 && mark[x][y-1]!=1) { if(graph[x][y-1] < graph[x][y]) { mark[x][y-1]=1; getlen(x,y-1,len+1); mark[x][y-1]=0; flag=1; } } if(y+1<m && mark[x][y+1]!=1