大数据上问题求解问题的过程:
1、可计算否?(图灵机模型)
2、能行可计算否?(利用现有的资源在时间约束内完成)
3、算法设计与分析
4、用计算机语言实现算法。
5、构建一个面向大数据的软件系统
大数据算法:
定义:在给定的资源约束下,以大数据为输入,在给定时间约束内可以生成满足给定约束结果的算法。
与传统算法区别:可以不是精确算法、内存算法、串行算法、仅在电子计算机上运行(有人参与)
不仅是云计算、MapReduce、大数据分析与挖掘的算法。
大数据的特点与大数据算法:
数据量大:缩减数据量、设计合理的存储结构;速度:降低时间复杂度。
难度:
1、访问全部数据时间过长:读取部分数据 (时间亚线性算法)
2、数据难于放入内存计算:将数据存储到磁盘上、仅基于少量数据进行计算。(外存算法、空间亚线性算法)
3、单个计算机难以保存全部数据,但是计算需要整体数据:并行处理(并行算法)
4、计算机计算能力不足或知识不足:人来帮忙(众包算法)
大数据的算法设计技术:
1、精确算法设计方法:DP、贪心……
2、并行算法
3、近似算法
4、随机算法
5、在线算法/数据流算法
6、外存算法
7、面向新型体系结构的算法
8、现代优化算法:模拟退火、蚁群、遗传等
大数据的算法分析
1、时间空间复杂度
2、I/O复杂度
3、结果质量(近似比、competitive ratio)
4、通讯复杂性