恩佐2登录 > SEO攻略 > 学习优化算法需要哪些数学基础?

学习优化算法需要哪些数学基础?

admin SEO攻略 2020年01月18日

  优化问题可以分成凸(convex)问题和非凸问题。凸问题都是可以找到最优解的,只是算力问题,小问题可以用现有的解法器非常快的找到最优解,大型问题则一般要用一些定制的分解算法。非凸问题则要具体情况具体讨论,如果只是带有整数变量的话一般也可以找到不错的解。

  电力系统这边常用的优化就是线性规划(LP),二次规划(QP),和整数规划(MIP)。LP和QP常用在解最优调度上,MIP用来做日前机组组合(unit commitment)。这几种问题都是有很成熟的算法,比如多边形法(simplex)和branch&bound法,和解法器(solver),比如Gurobi和Cplex。此外还有一种电力系统专有的问题是交流潮流计算(ACOPF),属于非凸问题,可以用梯度下降法找到次优解,而工业界这些年来也找到了许多启发式算法来提高解的速度和质量。最近10年以Caltech Steven Low为代表的网络控制研究领域也提出了一些ACOPF的凸优化近似解法,比如用到了正定规划(semi-definite programming),只是假设具有局限性,目前看来并不被工业界认可。

  下面再讲一下优化分解算法(decomposition),根据答主的经验,电气领域的优化研究主要就是建模和分解大型优化问题,问题的维度主要体现在空间维度(spatial),时间维度(temporal),和不确定性上(uncertainty)。常用的分解算法有primal / dual分解法,这个可以参考斯坦福Stephen Boyd的课件,思路就是利用问题本身的结构通过固定偶和变量(coupling variable)把一个大问题分拆成可以独立平行解决的小问题(subproblem),再把小问题的结果汇总起来update coupling variable(使用梯度/次梯度法,或者平面切割法),以此循环来解决整个问题(master problem),在与平行计算的结合基础上通常可以带来级数级别的速度提升,比如原来需要数小时甚至数日才能解决的问题通过分解+平行计算,可以在数分钟内解决。这类分解算法常用于空间分拆和情景分拆(scenario decomposition)。

  最后从学习上在搞懂一些基本的经典优化算法远离比如梯度下降和多边形法外,答主觉得优化在电力方面的应用主要体现在对primal和dual问题之间关联的以及KKT condition的理解,比如primal约束对应的dual是该约束的sub-gradient也就是该约束的price,很多优化分解问题都可以通过这种对这种关系的理解来解决。另一个难点在于对multi-stage decision和uncertainty的理解,比如要理解nonanticipatory control和model predictive control的区别,这个问题甚至可以延伸到当前大火的机器学习上(优化控制上的approximate dynamic programming),这方面答主看过不少资料,感觉还是Shapiro写的最好。

  首先不太明白题主问题和下面的补充说明“比如”是什么关系?下面列那些明显不是学习优化算法需要的数学基础啊?题主意思是不是说你学习优化算法重点关注的最终应用领域?一个强调数学基础,一个强调具体应用,新宝7登录题主到底重点在那里?建议修改题目或说明。

  我就从字面上大体回答一下问题标题。一般研究生水平主要需要的数学基础大体就是分析学相关,线性代数相关,数值分析相关,一点点拓扑相关,统计和机器学习相关,和计算科学基础相关。

  这些都是内功心法,最后应用到哪里其实关系不大,目前并没有什么算法大类是只用于电力系统或一定不用于电力系统或明显在电力系统获得更多青睐的。

  讲电力系统流行的话,可以多看二阶锥等凸优化、凸松弛方法,和人工智能相关的方法(包括随机梯度、动态规划、强化学习、贝叶斯优化、一些大尺度优化算法这些),ADMM这种可以分布式支撑并行的方法,还有模型预测控制这种突出不确定性处理能力和工程可操作性的方法,等等。

  内功心法和行业熟悉度到位了,上面这些其实不需要知乎来告诉你。多看同行论文,你会比回答这个问题的大部分人了解现状。

  谢邀,因为不懂电气。分享一下我学数据结构的精力。本科阶段我不是好学生,大二数据结构基本上没学过,但是课程设计有个机票预订管理系统。我想了一下,稍微高级一点肯定有个转机的问题。这里该如何计算呢?哪怕用本办法暴力破解似乎也无从下手,光看教程数据结构路径计算有Dijstra和Floyd算法,根本看不明白。新宝7恩佐登录原理不明白,数学也不明白,C代码更不明白。直到重新复习了线性代数,学习了人工智能路径计算和运筹学。当然因为算法是纯抽象纯数学的部分,和实际没有关联。

  个人感觉题主面临的问题既包含数学层面也包含物理层面,如果是纯数学层面最大流,最短路径等图论方法能够解决。物理层面就需要仿真和实验了。能量优化更多类似参数调优这样的。既有工程数学拉丁方这样的快速设计方案的部分,也有更多物理测量层面的实时反馈,才能优化运行。

  优化算法分为很多种,例如梯度下降、牛顿法、演化算法等。具体到某一工程领域的时候就需要具体问题具体分析了。我本身不是电气工程专业,但勉强算是电气工程的兄弟专业。这里谈一下我对电气工程优化问题的观察。针对电气领域的优化问题,首先电气领域的相关知识是必不可少的;其次需要复杂网络的相关知识,复杂网络本身就是交叉学科的产物,学习它的过程中,就要求具有不低的线代、矩阵论基础;第三是控制论的相关知识,这里同时也包含一定地对复变函数的要求。另外据我的观察,电气领域好像演化算法,例如粒子群优化、模拟退火使用的多一些(存疑)。演化算法的学习就相对简单一些,本身并不需要很高的数学基础,属于拿过来就能用的工具,不过,同样地,根据不同的问题,要依据本专业的相关知识来设计进化算子,设计精巧的、高效的算子这一点应该是优化问题的难点所在了。

  主要还是线代的东西居多,少量的概率和微积分。一学期下来感觉在干的事情就是不断迭代,然后考虑boundary能哪些条件下以多快的速度压到多低…

  non-convex optimization的东西就太杂了,不大好说。恩佐2登录以后有机会上到了再补充。

标签: seo算法