榨干AI,算法清单
榨干AI,算法清单
突然想知道AI知道哪些算法,于是我连续问了二十多次。最后可能是因为AI记不住上下文了,开始重复回答。我记录下了收集到的结果,但有很多算法我都没有听过。
这次的prompt很宽,”请帮我梳理一个编程算法的清单,只需要算法名称和用途”。然后不断输入继续。
下次再限定一个领域的,比如一个图像处理方面的算法,辅助制造领域的算法,可能就会有更细致的答案。
排序算法:
- 快速排序:通过分治法对数组进行排序,时间复杂度O(nlogn)
- 归并排序:通过分治法对数组进行排序,时间复杂度O(nlogn)
- 堆排序:通过堆结构对数组进行排序,时间复杂度O(nlogn)
查找算法:
- 二分查找:对有序数组进行快速查找,时间复杂度O(logn)
- 哈希表查找:通过哈希函数映射到表中快速查找,时间复杂度O(1)图算法:- 深度优先搜索:从根节点开始深度遍历图
- 广度优先搜索:从根节点开始宽度遍历图
- 最短路径算法:寻找图中的最短路径,例如Dijkstra算法、Bellman-Ford算法、Floyd算法等字符串匹配:- KMP算法:快速匹配字符串是否包含子串,时间复杂度O(n)
- Rabin-Karp算法:通过哈希求子串是否匹配,时间复杂度O(n)
动态规划:
- 爬楼梯问题:计算不同方法爬到楼顶
- 背包问题:选择不同物品放入背包达到最大价值
- 最长公共子序列:找出两个字符串的最长公共子序列
加密算法:
- MD5算法:对字符串进行加密,通常用来验证数据有效性
- SHA算法:安全HASH算法,比MD5更安全,分SHA-1、SHA-2等标准
- AES算法:一种常用的对称加密算法,用来对数据进行加密解密
压缩算法:
- Huffman编码:根据字符出现频率构建Huffman树,再进行编码压缩,常用于文本文件压缩
- LZ77算法:通过查找重复串进行压缩,常用于PKZIP、WinRAR等格式
- JPEG图像压缩:通过DCT变换、量化、熵编码等步骤压缩图像,常用于JPG图片格式
其他常用算法:
- 贪心算法:通过局部最优解找出全局近似最优解,用于解决一些优化问题
- K近邻算法:通过训练样本找到与输入最邻近的K个样本,用于分类与回归问题
- 朴素贝叶斯分类器:基于贝叶斯定理与特征条件独立假设进行分类,用于文本分类与垃圾邮件过滤
- 随机森林:通过集成多个决策树预测结果,用于分类与回归问题,效果较好
- PageRank算法:Google搜素引擎用于评估网页权重与排名的算法
- K-Means算法:一种聚类分析算法,将n个观察值划分为k个聚类,k 是预先指定的聚类数
人工智能领域:
- α-β剪枝算法:用于游戏对弈的搜索算法,提高搜索效率
- A*搜索算法:一种启发式搜索算法,用于pathfinding与游戏开发
- 遗传算法:一种启发式随机搜索算法,适用于求解复杂优化问题
- 最大熵模型:一种概率模型,用于解决分类与回归问题,理论基础简单但效果较好
区块链与比特币:
- 椭圆曲线数字签名算法(ECDSA):比特币算法中用于钱包地址生成与交易签名
- Hashcash算法:一种基于hash的PoW算法,用于抵抗垃圾邮件与DDoS攻击
- Scrypt算法:一种Key衍生算法,用于比特币钱包密钥生成
- Ethash算法:以太坊使用的PoW算法实现,目的是ASIC局限性要高
数据挖掘与机器学习:
- SVM算法:一种二分类算法,通过最大间隔分隔超平面对样本进行分类
- 决策树:一种流行的分类算法,通过树状结构对样本进行分类
- 逻辑回归:一种分类算法,通过建立样本与类别之间的logit函数进行分类
- EM算法:一种聚类算法,通过迭代寻找最大似然估计参数对样本进行聚类
- AdaBoost算法:一种集成学习算法,通过调整各分类器权重实现提高分类准确率
其他:
- 梯度下降法:一种最优化算法,通过迭代寻找目标函数的最小值
- Dijkstra算法:一种最短路径算法,用于找到图中最短路径
- 拓扑排序:对有向无环图进行排序,使得每个顶点之前的顶点都已经排好序
计算机网络:
- TCP拥塞控制算法:用于控制TCP连接的传输速率,如Tahoe、Reno、NewReno、BIC、CUBIC等
- DVSRP算法:一种距离矢量路由算法,用于计算网络各节点之间的最短路径
- OSPF算法:一种链路状态路由算法,用于构建网络链路拓扑并计算最短路径
- BGP算法:用于在自治系统之间进行路由选择的算法,实现互联网的路由功能
操作系统:
- 进程调度算法:用于决定将CPU分配给哪个进程,如FCFS、SJF、LRU、RR等算法
- 页置换算法:用于决定当内存页满时淘汰哪些页,如FIFO、LRU、OPT等算法
- 存储碎片整理算法:用于整理碎片化的内存空间,如首次适应算法、最佳适应算法等
- 磁盘调度算法:用于决定磁盘访问哪些请求,以减少磁头移动距离,如FCFS、SSTF、SCAN等
数据库:
- B+树:一种自平衡的搜索树,用于索引和索引查找,能实现对数据的高速访问
- Hash索引:通过Hash函数将键值映射到散列桶中,实现快速查找
- 聚集索引:通过对表中的某一列建立索引,实现快速查找,但会影响插入和修改性能
- 非聚集索引:不会按索引列的值对记录进行物理排序,lookup需要二次查找,但插入和修改性能好
组合优化:
- 分支定界法:通过对问题的解空间进行分支与界定,从而缩小搜索规模,用于求解NP难问题
- Simulated Annealing算法:一种基于蒙特卡罗方法的启发式算法,用于求解NP难问题
- Tabu Search算法:一种基于禁忌表的启发式算法,用以逃离局部最优解,求解NP难问题
- 蚁群算法:一种启发式算法,模拟蚂蚁寻找食物的行为,用于解决复杂优化问题
图片与信号处理:
- 高斯模糊:通过高斯函数对图像进行平滑处理,消除噪声
- Sobel算子:一种边缘检测算子,用于检测图像中的水平、垂直和对角边缘
- Canny算子:一种边缘检测算法,通过高低阈值检测和链接实现平滑的边缘检测
- DCT变换:一种重要的傅立叶变换,用于图像压缩(JPEG)和视频压缩(MPEG)
- 小波变换:通过多分辨率分析实现图像压缩、去噪、边缘检测等处理
- Huffman编码:一种编码压缩算法,用于图像压缩减少文件的大小
数据与图像压缩:
- 位图图像:像素级的无损图像格式,颜色深度高但文件体积大
- 向量图:通过几何形状描述图像,边界清晰,无损且体积小,但颜色深度受限
- JPEG:一种有损压缩图像格式,通过DCT变换、量化与熵编码进行压缩
- PNG:一种有无损压缩格式,支持alpha通道与动画,无专利限制
- MPEG:利用动态图像压缩算法,用于视频数据的压缩与解压
- ZIP:一种文件压缩格式,通过LZ77等算法实现无损数据压缩
语音与音频处理:
- FFT快速傅立叶变换:将信号转换到频域,实现滤波、频谱分析等处理
- LPCC线性预测编码:利用人声学原理,提取语音参数用于识别与合成
- MFCC倒谱系数:基于人耳听觉模型,用于语音特征提取与识别
- CELP码本激励线性预测:一种语音编码技术,用于数字式语音通信
- MP3:一种有损音频压缩格式,利用MDCT、量化、Huffman等算法进行高压缩
计算机图形学:
- 线性代数:向量、矩阵运算的基础,用于坐标变换、投影等
- 几何变换:平移、旋转、缩放、错切、射影变换等,用于图像变形
- 视点变换:平行投影、透视投影,用于生成3D场景的2D投影图像
- 光栅化:将3D图形转换成2D像素点的过程,用于显示器显示
- 渲染:光照计算、纹理映射、阴影生成等,用于增加真实感
- 锯齿现象:图像中斜线与曲线显示为锯齿状,需要抗锯齿技术处理
- 纹理映射:将2D图像贴在3D模型表面,增加真实感
- 几何建模:多边形、曲面、体积等,用于构建3D场景
- 光照模型:平行光源、点光源、聚光灯等,模拟光照与ombre效果
人工智能:
- 线性分类模型:感知器、Logistic回归,用于二分类问题
- 决策树:通过树形结构实现分类与回归
- 随机森林:通过集成决策树提高预测性能
- 贝叶斯分类:基于贝叶斯规则与条件独立性实现分类
- K-近邻算法:通过训练样本最近邻居进行预测
- 神经网络:感知机、BP神经网络、CNN、RNN等,用于学习复杂函数映射
- 聚类分析:K-Means、DBSCAN、层次聚类等,用于无监督学习
- 强化学习:通过AGENT与环境交互,达到最大化奖励
- 规划:通过有向无环图与启发函数寻找最佳路径,用于游戏开发等
- 自然语言处理:词向量、情感分析、词性标注、机器翻译等
其他算法:
- 演化算法:模拟生物进化过程,用于求解复杂优化问题
- 细胞自动机:利用规则演化一维或二维细胞空间,用于模拟复杂系统
- L系统:一种形式语言及其解析软件,用于植物生长模拟
- VI算法:一种启发式视觉嵌入算法,用于知识表示与推理
- 块链算法:一种去中心化数据结构,用于构建区块链与加密货币
- MapReduce算法:一种流行的云计算与大数据处理框架
- 置信区间算法:用于统计分析与机器学习中计算置信区间
- EM算法:一种神经网络训练算法,用于最大化模型对观测数据的似然估计
- 蒙特卡罗算法:一种随机模拟算法,用于求解复杂系统不可解决的确定性问题
- 拟牛顿法:一种二阶优化算法,通过估计hessian矩阵实现快速收敛
- 协方差矩阵算法:用于计算随机变量之间的相关性矩阵,应用于统计分析与模式识别
- 主成分分析:一种降维技术,用于提取数据集中主要信息,实现特征选择与数据压缩
- 卡尔曼滤波:一种递归估计算法,用于对线性动态系统的状态估计
- 阻塞算法:用于保证进程或线程访问临界资源的互斥,实现运行时的同步与互斥控制
并行算法:
- fork/join 并行框架:用于并行计算中任务的拆分与合并
- MapReduce算法:用于大数据云计算框架中的数据处理与计算
- GPU并行算法:通过显卡实现矩阵、图形运算的并行加速
- OpenMP算法:通过多线程实现共享内存系统的并行
- MPI算法:通过消息传递实现分布式内存系统的并行
- 股权证券化算法:用于将资产拆分成小份并行出售,实现风险分散
密码学算法:
- DES/3DES算法:一种对称加密算法,用于信息安全
- RSA算法:一种非对称加密算法,用于信息安全
- DSA算法:一种数字签名算法,用于信息安全
- ECC算法:一种基于椭圆曲线的密码算法,用于信息安全
- MD5/SHA算法:一种哈希算法,用于信息摘要及校验
网络管理算法:
- OSPF/BGP算法:用于网络路由选择与路径生成
- Spanning Tree算法:用于生成网络中的最小生成树,避免网络循环
- DNS算法:用于域名系统中的域名解析及缓存
- ARP算法:用于以太网中IP地址到MAC地址的解析
- DHCP算法:用于动态主机配置协议,实现IP地址的自动配置
- SNMP算法:用于简单网络管理协议,实现网络设备的管理
机器人算法:
- 通路规划算法:用于确定机器人从起点到终点的最佳路径,如A*算法
- 运动控制算法:用于控制机器人各关节的运动,实现规划路径的跟踪
- 定位算法:用于确定机器人在环境中的相对位置与朝向,如里程计与IMU
- 环境建模算法:用于机器人感知周围环境,建立环境地图,如SLAM算法
- 路径跟踪算法:用于控制机器人按规划路径行驶,如PID控制算法
- 机器视觉算法:用于机器人识别环境中的物体,判断空间信息,如SIFT、HOG
生物信息算法:
- Smith-Waterman算法:用于生物序列的局部比对,找出最优比对结果
- Needleman-Wunsch算法:用于生物序列的全局比对,实现序列之间的比对
- BLAST算法:一种生物序列搜索工具,用于快速在数据库中找出相似序列
- Clustal算法:一种生物序列的多重比对工具,用于分析进化关系
- MEGA软件:一种生物进化分析工具,利用距离矩阵实现序列的分类与进化树构建
- PHYLIP软件:一种生物进化分析工具,实现序列的进化树构建与进化分析
其他算法:
- ε-NFA算法:一种正则表达式到NFA的转换算法,用于正则表达式的匹配
- AC自动机算法:一种字符串匹配算法,通过状态机实现多个模式串的快速匹配
- KMP算法:一种字符串匹配算法,通过部分匹配表实现单模式串的快速匹配
- 模拟退火算法:一种随机搜索优化算法,通过渐减温度逃离局部最优,寻找全局最优解
- PSO算法:一种基于群体智能的优化算法,通过个体与群体飞行寻找到达最优位置
数据挖掘算法:
- Apriori算法:一种频繁项集挖掘算法,用于关联规则学习
- FP-Growth算法:一种频繁项集挖掘算法,通过FP树实现高效挖掘
- K-均值算法:一种聚类分析算法,将数据划分为K个簇
- 主成分分析:一种降维算法,通过特征值分解实现
- Latent Dirichlet Allocation:一种主题模型算法,用于文本主题挖掘
- 支持向量机:一种监督学习算法,通过最大间隔分离超平面实现分类与回归
- 朴素贝叶斯:一种分类算法,基于贝叶斯定理与特征条件独立性假设
- 决策树:一种分类与回归算法,通过树形结构实现预测
- 随机森林:一种集成学习算法,通过随机森林实现提高分类与回归性能
- PageRank算法:一种网页排名算法,用于搜索引擎的网页权重计算
推荐算法:
- 协同过滤算法:一种推荐算法,通过用户兴趣相似性实现推荐
- 基于内容的推荐:一种推荐算法,通过内容相似性实现推荐
- 神经网络推荐:一种推荐算法,通过神经网络学习用户兴趣实现推荐
- 矩阵分解算法:一种推荐算法,通过矩阵分解获取用户兴趣实现推荐
- PageRank算法:一种推荐算法,通过网页链接构建兴趣图谱实现推荐
- K-近邻算法:一种推荐算法,通过用户相似邻居兴趣实现推荐
- 混合算法:综合多种算法优点,提高推荐性能,如协同过滤+内容推荐。
计算社会学算法:
- 小世界模型:用于研究人际网络中节点之间的最短路径
- 群体智能模型:用于模拟个体之间相互作用,产生群体智能
- 传播模型:用于研究信息在社会网络中的传播,如SI、SIS、SIR模型
- Barabási-Albert模型:用于生成无标度网络,模拟复杂网络的演化过程
- Markov model:用于研究状态之间的转移概率,预测网络的演化趋势
计算生物学算法:
- BLAST算法:一种生物序列搜索工具,用于在数据库中快速查找同源序列
- Smith-Waterman算法:一种生物序列局部比对算法,用于找出最优比对
- Needleman-Wunsch算法:一种生物序列全局比对算法,用于序列比对
- Clustal算法:一种生物序列多重比对算法,用于分析序列的进化关系
- PHYLIP算法:一种生物序列进化分析软件,用于构建进化树
- MEGA软件:一种生物序列进化分析软件,用于构建进化树与进化分析
- DNA序列装配算法:用于 fragment 拼接成完整的 DNA 序列
- 编码区识别算法:用于识别基因组序列中的编码区、内含子与外显子区间
- SNPs检测算法:用于检测基因组或替代亚基因组中的单核苷酸变异
- 马尔科夫链蒙特卡罛算法:用于模拟生物序列的演化过程,重构祖先序列
计算化学算法:
- 分子力场算法:用于计算分子内各原子间的相互作用力,分析分子结构
- 分子动力学算法:用于模拟分子在一定温度及时间尺度下的运动轨迹
- 拓扑优化算法:用于搜索分子的空间构型,找到能量最低的构型
- 化学反应动力学算法:用于研究化学反应速率与反应机理,预测产物
- 定量构效关系算法:用于建立化合物结构与性质之间的定量模型
- 化学信息学算法:用于分析和总结大量化合物数据,发现数据间的关联规律
计算经济学算法:
- 泰勒规则算法:用于预测量化宏观经济变量的变化趋势,如GDP
- 随机游走算法:用于模拟金融时间序列的随机变化,预测股价变动
- CAPM模型:用于计算资产的期望收益率,评估资产定价是否合理
- 马尔科夫过程:用于预测宏观经济变量之间的转移概率,研究经济周期
- 向量自回归模型:用于研究多个时间序列变量之间的动态联系,预测趋势
- 时滞模型:用于研究经济变量之间的动态因果关系,判断变量的先行性
- 联立方程模型:用于研究宏观经济变量的动态互动机理,判断政策效果
- 震荡器模型:用于模拟经济变量周期性波动的幅度与频率,研究周期机理
- 阿隆索效应:用于解释通货膨胀与失业率之间的动态关系,作为政策参考
计算金融学算法:
- 时间序列模型:AR、MA、ARMA、ARIMA,用于预测金融时间序列的变动趋势
- GARCH模型:用于预测金融时间序列的波动率,研究金融市场的波动性
- 随机游走算法:用于模拟股票价格等金融变量的随机变化过程
- 蒙特卡罗算法:用于对复杂金融工具进行风险分析,当实际模型难以解析时
- 动态规划算法:用于选择投资组合且最大化投资收益,解决资金配置问题
- 蚁群算法:用于搜索投资策略空间,找到潜在的最优投资策略
- 神经网络算法:用于学习金融时间序列的复杂模式,实现金融预测
控制算法:
- PID控制算法:一种广泛用于工业控制的算法,通过比例、积分、微分控制量实现控制
- LQR控制算法:一种线性二次型调节算法,用于控制线性系统
- H∞控制算法:一种 robust 控制算法,可以抑制外部噪声的影响,适用于不确定系统
- 变结构控制算法:一种非线性控制算法,通过切换不同的控制结构实现控制
- 自适应控制算法:一种智能控制算法,可以根据系统的变化自动调整控制参数
- 神经网络控制算法:一种智能控制算法,通过神经网络实现对复杂系统的控制
- 模糊控制算法:一种智能控制算法,利用模糊逻辑实现对不确定系统的控制
- 广义预测控制算法:一种先进控制算法,预测不同控制量下的系统响应,选择最优控制输入
信号处理算法:
- 傅里叶变换:用于将信号从时域转换到频域,实现过滤、频谱分析等
- 小波变换:一种时频分析工具,用于分析非平稳信号
- 数字滤波器:用于滤除信号中的噪声与干扰分量,如FIR、IIR滤波器
- K均值算法:用于对信号进行向量量化,实现数据压缩
- LPC算法:一种语音分析与合成算法,通过预测谱实现信号处理
- MFCC算法:一种语音特征分析算法,基于人耳听觉模型
- 奇异值分解:用于信号分离与降噪,提取信号的主要特征分量
- 隐马尔科夫模型:用于模拟时间序列信号的生成机制,预测未来信号分量
- bispectrum分析:用于研究信号的二阶统计特性,分析信号的非线性耦合
图算法:
- DFS/BFS算法:用于遍历图中的所有节点,实现搜索与路径查找
- Dijkstra算法:用于查找加权图中的最短路径,解决单源最短路径问题
- A*算法:一种启发式搜索算法,用于在图中查找从起点到终点的最佳路径
- Prim算法:用于在加权图中查找最小生成树,解决最小权重生成树问题
- Kruskal算法:用于在加权图中查找最小生成树,基于割的贪心算法
- 拓扑排序算法:用于对有向无环图进行排序,按节点间的依赖关系排序
- 最小割算法:用于在流网络中查找源点到汇点的最小割,实现网络流控制
- 最大流算法:用于在流网络中查找源点到汇点的最大流,实现网络流分配
图像处理算法:
- 边缘检测:Sobel、Prewitt、Canny 算法,用于检测图像中的边缘
- 灰度变换:线性变换、对数变换、伽马变换等,用于修改图像灰度
- 滤波处理:中值滤波、高通滤波、低通滤波、Butterworth等,用于滤除图像噪声
- 图像分割:阈值分割、边缘分割、区域生长等,用于分割图像成有意义的区域
- 图像压缩:JPEG、PNG、GIF等,用于减少图像所占存储空间
- 图像修复:中值滤波、PDE等,用于修复图像中的小划痕或噪点
- 特征提取:SIFT、SURF、ORB等,用于从图像中提取有意义的特征
- 图像配准:通过图像特征匹配不同视角下的图像,用于图像拼接或变化检测
- 图像识别:通过机器学习对输入图像进行分类或者识别物体
压缩算法:
- Huffman编码:一种可变字长编码算法,用于实现数据的无损压缩
- LZ77/LZ78算法:一种词典方法数据压缩算法,通过字符串替换实现压缩
- DEFLATE算法:一种广泛应用于文件压缩的算法,结合LZ77/Huffman 编码
- JPEG算法:一种有损图像压缩算法,基于DCT变换与量化实现压缩
- MP3算法:一种有损音频压缩算法,基于时域与频域工具实现压缩
- MPEG算法:一种视频压缩算法,用于有损动态图像的高度压缩
加密算法:
- DES算法:一种对称加密算法,基于分组加密技术,密钥长度为56位
- 3DES算法:一种对称加密算法,通过三重DES运算增强算法安全强度
- AES算法:一种对称加密算法,基于分组加密技术,密钥长度为128/192/256位
- RSA算法:一种非对称加密算法,基于大整数分解实现,用于数字签名与加密
- ECC算法:一种非对称加密算法,基于椭圆曲线,相比RSA更简单更安全
- MD5算法:一种不可逆加密算法,产生128位哈希值,用于信息校验
- SHA算法:一种不可逆加密算法,SHA-1/SHA-2,产生160-512位哈希值
并行算法:
- 消息传递接口:用于分布式内存系统的进程通信与并行
- 共享内存:通过多线程访问共享数据,在一台机器上实现并行
- GPU并行:通过显卡上的多核实现矩阵与图形运算的并行加速
- MapReduce:用于云计算环境下的大规模数据处理与并行
- MPI:用于分布式集群中进程间的通信与并行,实现跨机器的并行
- Pthreads:用于多线程环境下进程内的线程管理与并行
- OpenMP:用于共享内存系统中多线程的自动并行,通过pragma指令实现