请问大神作为算法工程师有没有必要学习运筹学?
网友回复
运筹学,是现代管理学的一门重要专业基础课。它是20世纪30年代初发展起来的一门新兴学科,其主要目的是在决策时为管理人员提供科学依据,是实现有效管理、正确决策和现代化管理的重要方法之一。该学科应用于数学和形式科学的跨领域研究,利用统计学、数学模型和算法等方法,去寻找复杂问题中的最佳或近似最佳的解答。
计算机中的很多算法都用到了运筹学,如下:
1. 搜索算法 图搜索算法,用于查找从给定初始节点到给定目标节点的路径。它采用启发式估计,通过估计通过该节点的最佳路径对每个节点进行排名。它按照此启发式估计的顺序访问节点。因此,A *算法是最佳优先搜索的示例。 2. 波束搜索 波束搜索是一种搜索算法,它是最佳优先搜索的优化。与最佳优先搜索一样,它使用启发式函数来评估它检查的每个节点的承诺。然而,波束搜索仅展开每个深度处的前m个最有希望的节点,其中m是固定数量,即波束宽度。 3. 二分搜索 通过排除每一步中的一半数据来查找线性阵列中特定值的技术。 4. 分支定界 用于寻找各种优化问题的最优解的一般算法方法,尤其是在离散和组合优化中。 5. Buchberger算法 在计算代数几何和计算交换代数中,Buchberger算法是一种将多项式理想的给定发生器组转换为Gröbner基础的方法,相对于某些单项式。可以将其视为用于单变量gcd计算的欧几里德算法和用于线性系统的高斯消元的概括。 6. 数据压缩 数据压缩或源编码是使用比未编码表示通过使用特定编码方案使用的更少比特(或其他信息承载单元)来编码信息的过程。 7. Diffie-Hellman密钥交换 密码协议允许彼此没有先验知识的双方在不安全的通信信道上共同建立共享密钥。然后,该密钥可用于使用对称密钥密码加密后续通信。 8. Dijkstra算法 解决具有非负边权重的有向图的单源最短路问题。 9. 离散微分,公式f'(x)=(f(x + h) - f(xh))/ 2h。 10. 动态规划 动态规划是一种用于减少表现出重叠子问题和最佳子结构的属性的算法的运行时间的方法,如下所述。 11. 欧几里德算法 确定两个整数的最大公约数(gcd)的算法。它是已知最古老的算法之一,因为它出现在公元前300年左右的Euclid元素中。该算法不需要将两个整数分解。 12. 期望最大化算法(EM-Training) 在统计计算中,期望最大化(EM)算法是用于在概率模型中找到参数的最大似然估计的算法,其中模型取决于未观察到的潜在变量。EM在执行期望步骤和最大化步骤之间交替,期望步骤计算潜在变量的预期值,最大化步骤计算给定数据的参数的最大似然估计并将潜在变量设置为它们的期望。 13. 快速傅里叶变换(FFT) 高效算法计算离散傅里叶变换(DFT)及其逆。FFT对于各种应用非常重要,从数字信号处理到求解偏微分方程,再到快速乘以大整数的算法。 14. 梯度下降 梯度下降是一种优化算法,通过采用与当前点处函数的梯度(或近似梯度)的负值成比例的步长来逼近函数的局部最小值。相反,如果采用与梯度成比例的步长,则接近该函数的局部最大值; 然后将该过程称为梯度上升。 15. 哈希(Hashing) 用于汇总或概率识别数据的功能。通常,这意味着将数学公式应用于数据,从而生成可能或多或少独特于该数据的字符串。该字符串比原始数据短得多,但可用于唯一标识它。 16. 堆(堆排序) 在计算机科学中,堆是一种专门的基于树的数据结构。堆是许多应用程序最喜欢的数据结构:堆排序,选择算法(找到它们的最小值,最大值或最大值,中间线甚至是次线性时间中的任何第k个元素),图算法。 17. Karatsuba乘法 对于需要乘以数千位数字的系统,例如计算机代数系统和bignum库,长乘法太慢。这些系统采用Karatsuba乘法,于1962年发现。 18. LLL算法 Lenstra-Lenstra-Lovasz晶格简化(LLL)算法是一种算法,在给定格子基础作为输入的情况下,输出具有短的,几乎正交的矢量的基础。LLL算法在公钥加密方案的密码分析中发现了许多应用:背包密码系统,具有特定设置的RSA等。 19. 最大流算法 网络优化的基本算法,最大流量问题是通过最大流量网络找到合法流量。有时它被定义为找到这种流的价值。最大流量问题可以看作是更复杂的网络流量问题的特例。最大流量与Max-flow min-cut定理中的网络中的切割有关。Ford-Fulkerson算法计算流网络中的最大流量。 20. 合并排序 用于将列表(或只能按顺序访问的任何其他数据结构,例如文件流)重新排列为指定顺序的排序算法。 21. 牛顿方法 用于查找实值函数的零(或根)近似的高效算法。牛顿方法也是一种众所周知的算法,用于在一个或多个维度中找到方程的根。它还可用于查找函数的局部最大值和局部最小值。 牛顿法的思想是非线性函数的二次函数局部近似。 22. Q-learning Q-learning是一种强化学习技术,通过学习一个动作 - 值函数来实现,该函数给出了在给定状态下执行给定动作并且之后遵循固定策略的预期效用。Q-learning的优势在于它能够在不需要环境模型的情况下比较可用操作的预期效用。 23. 二次筛子 二次筛分算法(QS)是一种现代整数分解算法,并且在实践中,已知第二种最快的方法(在数字筛分之后,NFS)。对于小数位数为110左右...
点击查看剩余70%