常用算法的计算复杂度

  • 穷举法 (Method of Exhaustion)
  • 二分法 (Bisection)
  • 线性规划(LP)
  • 半定规划(SDP)
  • 逐次凸逼近(SCA)
  • 块坐标下降(BCD)
  • 内点法(Interior Point Method)
  • 待整改
  • 参考文献

穷举法 (Method of Exhaustion)

穷举法的计算复杂度就是穷举次数NNN。

二分法 (Bisection)

二分法的计算复杂度是 O(log⁡2(L0/e))\mathcal{O} (\log_2(L_0/e))O(log2​(L0​/e)) , 其中 L0L_0L0​ 是最初的长度间隔,eee 是要求的精度。

线性规划(LP)

The complexity of a standard linear problem is of order O(a2b)\mathcal{O} (a^2b)O(a2b), where aaa is the number of variables and bbb is the number of constraints.
For instance, the problem (P2.1) in ref [2], it is easy to show that the complexity of (P2.1) is of order O((MN+KN+K+KMN)(KM)2)\mathcal{O} \left ( (MN + KN + K+ KMN)(KM)^2 \right)O((MN+KN+K+KMN)(KM)2).
Note that (P2.1) is a linear function which only consists of the scheduling variables.

  • 变量个数:KM,为什么不是KMN?
  • 约束(10) 的个数 MN+KNMN+KNMN+KN
  • 约束(11) 的个数 KKK
  • 约束(14) 的个数 KMNKMNKMN

半定规划(SDP)

解决半定规划问题的计算复杂度为 O((M+1)4.5)\mathcal{O} ((M+1)^{4.5})O((M+1)4.5),其中MMM代表变量个数 【8】。

逐次凸逼近(SCA)

SCA算法的计算复杂度和 “迭代次数(III)”,以及每次迭代中的 “更新变量的个数(NKNKNK)”有关;计算复杂度的表达式为 O(I(NK)3)\mathcal{O} (I(NK)^3)O(I(NK)3).

块坐标下降(BCD)

BCD algorithm 即 Alternating algorithm.

  • BCD算法的收敛要求每一个块的优化要达到最优解,而实际问题中每个块问题往往是非凸的,用凸优化技术SCA求解得到的往往是次优解,所以在证明算法的收敛性的时候,需要自行证明一下优化目标函数的非减、非增,证明是存在 upper bound 或 lower bound,如此可证明问题收敛。
  • 当BCD算法的某个块问题是采用SCA算法来解决的,则该块算法的计算复杂度和解决单独问题的SCA算法一样:计算复杂度为 O(N3.5)\mathcal{O} (N^{3.5})O(N3.5) 【1】,NNN为变量个数。
  • 在保证问题收敛后,解决每个块问题的算法的复杂度进行相加,即为BCD算法的复杂度。
  • 如果算法的外部有循环NoutN_{out}Nout​时,还需要在内部循环算法复杂度的基础上乘以NoutN_{out}Nout​。

内点法(Interior Point Method)

内点法的计算复杂度为 O(n3.5log⁡(1/ϵ))\mathcal{O} (n^{3.5}\log(1/ \epsilon))O(n3.5log(1/ϵ)),其中 nnn 为变量维度, ϵ\epsilonϵ 为目标精度 【7】。

待整改

参考文献

【1】S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004.
【2】A. Bejaoui, K. Park and M. Alouini, “A QoS-Oriented Trajectory Optimization in Swarming Unmanned-Aerial-Vehicles Communications,” in IEEE Wireless Communications Letters, vol. 9, no. 6, pp. 791-794, June 2020, doi: 10.1109/LWC.2020.2970052.
【3】With Wireless Power Transfer," in IEEE Internet of Things Journal, vol. 8, no. 10, pp. 7833-7848, 15 May15, 2021, doi: 10.1109/JIOT.2020.3041303.
【4】C. Zhan and Y. Zeng, “Aerial–Ground Cost Tradeoff for Multi-UAV-Enabled Data Collection in Wireless Sensor Networks,” in IEEE Transactions on Communications, vol. 68, no. 3, pp. 1937-1950, March 2020, doi: 10.1109/TCOMM.2019.2962479.
【5】 R. Duan, J. Wang, C. Jiang, H. Yao, Y. Ren and Y. Qian, “Resource Allocation for Multi-UAV Aided IoT NOMA Uplink Transmission Systems,” in IEEE Internet of Things Journal, vol. 6, no. 4, pp. 7025-7037, Aug. 2019, doi: 10.1109/JIOT.2019.2913473.
【6】Q. Hu, Y. Cai, A. Liu, G. Yu and G. Y. Li, “Low-Complexity Joint Resource Allocation and Trajectory Design for UAV-Aided Relay Networks With the Segmented Ray-Tracing Channel Model,” in IEEE Transactions on Wireless Communications, vol. 19, no. 9, pp. 6179-6195, Sept. 2020, doi: 10.1109/TWC.2020.3000864.
【7】https://blog.csdn.net/weixin_39274659/article/details/121834231
【8】Luo Z Q , Ma W K , So M C , et al. Semidefinite Relaxation of Quadratic Optimization Problems[J]. IEEE Signal Processing Magazine, 2010, 27(3):20-34.

常用算法的计算复杂度相关推荐

  1. 机器学习常用算法归详细纳整理

    作者:进击的西西弗斯 本文链接:https://blog.csdn.net/qq_42216093/article/details/116434557 版权声明:本文为作者原创文章,未经作者同意禁止转 ...

  2. 五大常用算法一(回溯,随机化,动态规划)

    五大常用算法一(回溯,随机化,动态规划) 回溯算法 回溯法: 也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并以此慢慢地扩大问题规模,迭代地逼近最终问题 ...

  3. C语言常用算法 脚本之家,C/C++常用算法手册 秦姣华 中文pdf扫描版 22.5MB

    <C/C++常用算法手册>分3篇,共13章,"第1篇算法基础篇"介绍了算法概述,重点分析了数据结构和基本算法思想:"第2篇算法基本应用篇"详细讲解了 ...

  4. 集体智慧及其常用算法

    集体智慧定义 是指由许多的个体通过合作与竞争中所显现出来的智慧,集体智慧是一种共享的或者群体的智能.它是从许多个体的合作与竞争中涌现出来的.集体智慧在细菌.动物.人类以及计算机网络中形成,并以多种形式 ...

  5. 【NLP】为什么中文分词比英文分词更难?有哪些常用算法?(附代码)

    导读:人类文明的重要标志之一是语言文字的诞生.数千年来,几乎人类所有知识的传播都是以语言和文字作为媒介. 自然语言处理是使用计算机科学与人工智能技术分析和理解人类语言的一门学科.在人工智能的诸多范畴中 ...

  6. 图解:轻松看懂机器学习十大常用算法

    源 / 人人宽客 通过本篇文章大家可以对ML的常用算法形成常识性的认识.没有代码,没有复杂的理论推导,仅是图解,介绍这些算法是什么以及如何应用(例子主要是分类问题).以后有机会再对单个算法做深入地解析 ...

  7. 轻松看懂机器学习十大常用算法

    本文转载自CSDN aliceyangxi1987的博客 通过本篇文章可以对机器学习(machine learning, ML)的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下, ...

  8. 句法分析常用算法框架以及NLPIR、Dependency Viwer

    句法分析常用算法框架以及NLPIR.Dependency Viwer 目录 句法分析常用算法框架以及NLPIR.Dependency Viwer 句法分析框架 北京理工大学NLPIR

  9. dataframe常用操作_【Data Mining】机器学习三剑客之Pandas常用算法总结上

    一.前言 看pandas之前我建议先看我的numpy总结,效果更佳. SEU-AI蜗牛车:[Data Mining]机器学习三剑客之Numpy常用算法总结​zhuanlan.zhihu.com 可以 ...

最新文章

  1. 曲线学习PyQt5方案一
  2. OSGi-入门篇之服务层(03)
  3. 设计模式漫谈之迭代器模式
  4. 为何excel中数据无法计算机,excel表格内数据为何无法计算机-为什么EXCEL单元格内的数字不能运算...
  5. 设计模式之_Iterator_04
  6. 用java编写一个简单计算器
  7. python3.1.1_python 3.1.1 with--enable shared:将不会构建任何扩展
  8. Nginx日志配置详解
  9. FAQ系列 | mysqldump选项之skip-opt
  10. 【BZOJ2296】随机种子(构造)
  11. Atitit ever note org log t99 目录 1. data 1 2. Sik dsk zip mode 1 3. Local exted stat 2 4. Recy 3 1
  12. uigetfile使用方法
  13. OPICS 节假日维护
  14. 最新批量搜狗域名添加绑定工具
  15. selenium爬虫入门简单实例(获取对分易习题)
  16. 用重合图片去计算网络的峰值分类准确率
  17. 手机便签软件哪个好用 手机便签软件推荐
  18. 转载:Android底部导航栏,三种风格和实现
  19. 官网电子安全证书端口即将到期!新型诈骗短信!
  20. 关于笔记本检测不到外接显示器的问题

热门文章

  1. 有哪些值得收藏的运营思维导图?
  2. 软件测试——接口测试测试用例设计
  3. CSS中的背景小知识
  4. Python 随机双色球,开奖,记录
  5. matlab对一组数据傅里叶变换,matlab快速傅里叶变换(三个matlab程序介绍)
  6. 《python数据挖掘》和《python数据挖掘入门与实践》两本书读后感
  7. Camera2 openCamera 流程分析
  8. Nuendo学习之旅——没声音怎么办
  9. MT7601WIFI-Linux驱动总结
  10. 小数不显示末尾的0的模块