大数据算法(一)亚线性算法

摘要:
算法描述:在A中随机独立抽取s=2/ε个位置上的元素检查抽样,若不包含1,则输出“是”,若包含1,则输出“否”判定精确性分析如果A是全0数组,始终输出“是”如果A是ε-远离的,运行时间:O证据引理:如果一次测试以大于等于p的概率获得一个证据,那么s=2/p轮测试得到证据的概率大于等于2/3判定算法的定义三、亚线性算法案例

来源:大数据算法 王宏志

一、概述

大数据定义:在给定的资源约束下,以大数据为输入,在给定时间约束内可以生成满足给定约束结果的算法。

大数据特点:4V

大数据算法可以不是:

  • 精确算法
  • 内存算法
  • 串行算法
  • 仅在电子计算机上运行的算法

大数据算法不仅是:

  • 云计算
  • MapReduce
  • 大数据分析和挖掘的算法

难度:

  • 访问全部数据时间过长

读取部分数据 亚线性算法

  • 数据难以放入内存

将数据存储到磁盘上外存算法

仅基于少量数据进行计算 空间亚线性算法

  • 单个计算机难以保存全部数据

并行处理 并行算法

  • 计算机能力不足或知识不足

人来帮忙 众包算法

大数据上问题求解计算问题的过程

大数据算法(一)亚线性算法第1张

大数据的算法设计技术

  • 精确算法设计方法
  • 并行计算
  • 近似计算
  • 随机算法
  • 在线算法/数据流算法
  • 外存算法
  • 面向新型体系结构的算法
  • 现代优化算法

大数据算法分析

  • 时间空间复杂性
  • IO复杂性
  • 结果质量(近似比、competitive ratio)
  • 通讯复杂性

二、亚线性算法概述

1.定义

时间/空间/IO/通讯/能量等消耗是o(输入规模)

亚线性时间算法

  • 性质检测算法
  • 亚线性时间近似算法

亚线性空间算法

  • 数据流算法

2.空间亚线性算法-水库抽样

输入:一组数据,其大小未知

输出:这组数据的k个均匀抽样

要求:

  • 仅扫描数据一次
  • 空间复杂性为O(k) 和抽样大小有关,和整个数据无关
  • 扫描到数据的前n个数字时(n>k),保存当前已扫描数据的k个均匀抽样

算法:

  • 申请一个长度为k的数组A保存抽样
  • 保存首先接收到的k个元素
  • 当接收到第i个新元素t时,以k/i的概率随机替换A中的元素(即生成[1, i]间随机数j,若k<=j,则以t替换A[j]

大数据算法(一)亚线性算法第2张

3.时间亚线性计算算法-平面图直径

输入:m个顶点的平面图,任意两点之间的距离存储在矩阵D中,即点i到点j的距离为Dij

  • 输入大小是n=m的平方
  • 最大的Dij是图的直径
  • 点之间的距离对称且满足三角不等式

输出:该图的直径和距离最大的Dij

要求:运行时间为o(n)

算法:

动机:无法在要求的时间内得到精确算法,寻找近似算法

近似算法

  • 任意选择k<=m
  • 选择使得Dkl最大的l
  • 输出Dkl和(k, l)

近似比

Dij <= Dik+Dkj <= Dkl+Dk l<= 2Dkl 因而近似比为2

近似时间

大数据算法(一)亚线性算法第3张

4.近似算法

什么是近似算法

  • 近似算法主要用来解决优化问题
  • 能够给出一个优化问题的近似优化解的算法

近似算法解的近似度

  • 问题的每一个可能的解都具有一个代价
  • 问题的优化解可能具有最大或最小代价
  • 我们希望寻找问题的一个误差最小的近似优化解

我们需要分析近似解代价与优化解代价的差距

  • Ratio Bound
    • 大数据算法(一)亚线性算法第4张
  • 相对误差
    • 大数据算法(一)亚线性算法第5张
  • (1-ε)-近似

5.时间亚线性判定算法-全0数组判定

输入:包含n个元素的0,1数组A

输出:A中的元素是否全是0

要求:运行时间为o(n)

判定问题的近似:

  • 无法在要求的时间内得到精确解,寻找近似解

判定问题如何近似

  • 输入满足某种性质或者远非满足此性质

大数据算法(一)亚线性算法第6张大数据算法(一)亚线性算法第7张

  • ε-远离

对于输入x,如果x到L中的任意字符串的汉明距离至少为ε|x|,则x是ε-远离L的

全0数组判定问题的近似

  • 是否A=00...0或者其包含1的个数大于 εn?

算法描述:

  • 在A中随机独立抽取s= 2/ε个位置上的元素
  • 检查抽样,若不包含1,则输出“是”,若包含1,则输出“否”

判定精确性分析

  • 如果A是全0数组,始终输出“是”
  • 如果A是 ε-远离的,大数据算法(一)亚线性算法第8张

运行时间:O(s)

证据引理:

  • 如果一次测试以大于等于p的概率获得一个证据,那么s=2/p轮测试得到证据的概率大于等于2/3

判定算法的定义

大数据算法(一)亚线性算法第9张

三、亚线性算法案例

大数据算法(一)亚线性算法第10张

免责声明:文章转载自《大数据算法(一)亚线性算法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jenkins(8)构建触发器之定时构建和轮询 SCMIDEA——错误: 找不到或无法加载主类 com.Main下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java高级之虚拟机垃圾回收机制

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 区别于C语言手动回收,Java自动执行垃圾回收,但为了执行高效,需要了解其策略,更好的去应用。 以下用HotSpot虚拟机为例,选取几个有意思的参数讲一下 1、默认GC时间为总时间的1%。也就是说GC线程设置有超时...

简述数据三大范式?

数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 什么是三大范式: 第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式...

python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别

1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABEAABERABEiABEzACIAACIRACIiACIzADMAADMRADMiADMzADd3REREQAAVQAAmQAA3QBVAABVVQ...

vue实战(4):postman测试数据、封装ajax、使用vuex管理状态

书到用时方恨少 这个阶段涉及到了vuex,本来想着不慌,用起来,使用的过程中问题还真不少 本篇涉及到的内容: ---postman 测试数据 ---封装 ajax 请求函数 ---封装接口请求函数 ---使用 vuex 管理状态 ---获取首页相关数据 0. 其它 vue实战(1):准备与资料整理vue实战(2):初始化项目、搭建底部导航路由vue实战...

OpenSSL简单介绍及在Windows、Linux、Mac系统上的编译步骤

OpenSSL介绍:OpenSSL是一个强大的安全套接字层password库,囊括基本的password算法、经常使用的密钥和证书封装管理功能及SSL协议。并提供丰富的应用程序供測试或其他目的使用。 SSL是SecureSockets Layer(安全套接层协议)的缩写,能够在Internet上提供秘密性传输。其目标是保证两个应用间通信的保密性和可靠性,...

pandas数据框,统计某列或者某行数据元素的个数

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/sinat_38893241/article/details/80414977在《pandas数据框,统计某列数据与其他文件对应关系的个数》之后,我发觉简单版的元素个数统计问题没有说清楚,就在这里介绍...