大数据算法 chap-2 亚线性算法
亚线性算法
- 2.1 亚线性算法的定义
- 2.2 水库抽样—空间亚线性算法
- 2.3 平面图直径—时间亚线性计算算法
- 2.4 全0数组判定—时间亚线性判定算法
2.1 亚线性算法的定义
亚线性:比线性消耗更低的算法
时间/空间/IO/通讯/能量等消耗是o(输入规模)
- 亚线性时间算法
亚线性时间近似算法(最优解)
性质检测算法 - 亚线性空间算法
数据流算法(在受限空间内得到计算结果)
2.2 水库抽样—空间亚线性算法
- 输入:一组数据,其大小未知
- 输出:这组数据的k个均匀抽样
- 要求:
仅扫描数据一次
空间复杂性为O(k)
扫描到数据的前n个数字时(n>k),保存当前已扫描数据的k个均匀抽样
1.申请一个长度为k的数组A保存抽样
2.保存首先接收到的k个元素
3.当接收到第i个新元素t时,以k/i的概率随机替换A中的元素(即生成[1,i]间随机数j, 若j⩽\leqslant⩽k, 则以t替换A[j])
性质1: 该采样是均匀的
ki×(1−1i+1)×(1−1i+2)×...×(1−1n)=kn\frac{k}{i}×(1-\frac{1}{i+1})×(1-\frac{1}{i+2})×...×(1-\frac{1}{n})=\frac{k}{n}ik×(1−i+11)×(1−i+21)×...×(1−n1)=nk
i被i+1替换概率:ki+1×1k\frac{k}{i+1}×\frac{1}{k}i+1k×k1,不被替换:1−1i+11-\frac{1}{i+1}1−i+11
性质2: 空间复杂性是O(k)
2.3 平面图直径—时间亚线性计算算法
- 输入:m个顶点的平面图,任意两点之间的距离存储在矩阵D中,即点i到点j的距离为Dij
输入大小是n=m2
最大的Dij是图的直径
点之间的距离对称且满足三角不等式 - 输出:该图的直径和距离最大的Dij
- 要求: 运行时间为o(n)
无法在要求的时间内得到精确解,寻找近似算法
近似算法:
- 任意选择k≤m
- 选择使得Dkl最大的l
- 输出Dkl和(k, l)
近似比:
Dij≤ Dik + Dkj≤ Dkl + Dkl≤ 2 Dkl(满足三角不等式)
因而近似比为2
运行时间:
O(m)=O(√n)=o(n)
- 什么是近似算法
近似算法主要用来解决优化问题
能够给出一个优化问题的近似优化解的算法 - 近似算法解的近似度
问题的每一个可能的解都具有一个代价
问题的优化解可能具有最大或最小代价
我们希望寻找问题的一个误差最小的近似优化解 - 我们需要分析近似解代价与优化解代价的差距
Ratio Bound
相对误差
Ratio Bound
设A是一个优化问题的近似算法, A具有ratio bound p(n), 如果
其中n是输入大小, C是A产生的解的代价, C* 是优化解的代价。
如果问题是最大化问题, max{C/C*, C*/C}=C*/C
如果问题是最小化问题, max{C/C*, C*/C}=C/C*
由于C/C*<1当且仅当C*/C >1, Ratio Bound不会小于1
Ratio Bound越大, 近似解越坏
相对误差
相对误差: 对于任意输入, 近似算法的相对误差定义为|C-C*|/C*, 其中C是近似解的代价, C* 是优化解的代价.
相对误差界: 一个近似算法的相对误差界为ε\varepsilonε(n), 如果|C-C*|/C*≤ε\le\varepsilon≤ε(n)
2.4 全0数组判定—时间亚线性判定算法
- 输入:包含n个元素的0,1数组A
- 输出:A中的元素是否全是0
- 要求: 运行时间为o(n)
ε-远离
对于输入x,如果着从x到L中任意字符串的汉明距离至少为 ε|x|,则x是ε-远离 L的.
算法描述
在A中随机独立抽取s=2/ ε个位置上的元素
检查抽样,若不包含1,则输出“是”,若包含1,则输出“否”
判定精确性分析
如果A是全0数组,始终输出”是”
如果A是ε-远离的, Pr[error]=Pr[抽样中没有1]≤\le≤(1-ε)s ≈e−εs\approx e ^{- εs}≈e−εs=e-2<13\frac{1}{3}31
A是ε-远离,A中1>=εn, 抽出1的概率ε,0的概率1-ε,出错就是抽出全0
引理:
如果一次测试以大于等于p的概率获得一个证据,那么s=2/p轮测试得到证据的概率大于等于2/3
对于判定问题L,其查询复杂性为q(n)和近似参数ε的性质测试算法是一个随机算法,其满足对于给定L的是一个实例x, 最多进行q(|x|)次查询,并且满足下述性质:
如果x在L之中,该算法以最少2/3的概率返回“是”
如果x 是ε远离L的, 该算法以最小2/3的概率返回“否”
大数据算法 chap-2 亚线性算法相关推荐
- 大数据算法概述及算法分解之亚线性算法
一.大数据算法的难度 1.访问全部数据时间过长 --读取部分数据---------------时间亚线性算法 2.数据难于放入内存计算 --将数据存储在磁盘上--------外存算法 --仅基于少量数 ...
- 电商大数据项目-推荐系统实战之推荐算法(三)
电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...
- 《BIG DATA大数据日知录 架构和算法》读书笔记
2019独角兽企业重金招聘Python工程师标准>>> <BIG DATA大数据日知录 架构和算法>读书笔记 博客分类: 架构 分布式计算 1.数据分片和路由 Hash ...
- 云创大数据亮相第四届中国-亚欧安博会,智慧路灯伴侣、单向光闸引关注热潮...
2017年8月17日,以"智慧安防.科技强警"为主题的第四届中国-亚欧安防博览会(简称亚欧安博会)在乌鲁木齐开幕,吸引了来自美国.印度.哈萨克斯坦.俄罗斯.日本等30多个国家和地区 ...
- 读《大数据日知录架构与算法》
张俊林著 2014年9月 第1版 IBM 用 3V ,大容量(Volume),多形式(Variety)从数据的类型角度来看,高速率(Velocity)数据产生效率的实时性角度. 后又加一个:Value ...
- 大数据学习笔记之三十七 数据挖掘算法之关联分析
数据挖掘中算法分为三种:关联分析.聚类分析和预测模型,本篇主要是为了介绍关联分析相关的知识
- 大数据建模步骤 以及常用的算法
1.数据建模的基本流程是什么?只需要做好六步 2.基本概念-回归.分类.聚类_测试狗一枚的博客-CSDN博客_分类 回归 聚类
- 大数据 | 实验四:并行化数据挖掘算法设计
文章目录
- 《大数据算法》一1.2 大数据算法
本节书摘来华章计算机<大数据算法>一书中的第1章 ,第1.2节,王宏志 编著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 大数据算法 这一节我们概 ...
最新文章
- 张孝祥javascript学习笔记1---HTMLCSS
- bgi::detail::minmaxdist用法的测试程序
- Servlet API
- 征文 | 2022年全国知识图谱与语义计算大会(CCKS 2022) 征稿通知
- 复制远程服务器的文件 报错 scp: not a regular file
- Python中函数的形参与按值传递之间的关系
- 2020Java学习路线(珍藏版)
- 软件开发工程师能力模型
- calculate函数使用方法c语言,使用 CALCULATE 函数
- palantir_Palantir Technologies有望成为今年最大的IPO
- Sprite Renderer
- 字符编码常识及问题解析
- MATLAB打开后一直在初始化,或者初始化很慢问题
- 搭建机器人电控系统——PID算法——位置式、增量式、模糊式PID
- 程序猿也爱学英语,有图有真相 1
- 自定义表格式布局FormLayout
- Joint Model (Intent+Slot)
- 计算机无法启动安装程序,电脑教程:win10安装程序无法正常启动
- 快速入门template.js
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxxx.phb.mappe
热门文章
- Lunix基础终端控制器操作
- 计算机二级没考过考计算机三级,怎么样才能学好计算机二级,考了两次还没有过啊...
- 【盲信道估计】基于matlab的LMS盲信道估计QPSK仿真
- 关于maven更新超时问题显示报错
- C/C++语言100题练习计划 82——加勒比海盗船(贪心算法实现)
- 计算机有没必要换硬盘,轻松更换电脑硬盘无需重装系统的方法介绍
- 信息安全系统设计基础实验一—20135222胡御风20135215黄伟业
- 2021高考辽宁英语成绩查询,2021年辽宁高考英语满分多少分?
- 交换机、路由器模式层次简介
- 3 款强大的开源密码管理器