1.写在前面
因为毕业设计的缘故,准备向计算机方向读研的我偶然结识了SDN与Openflow这两个神奇的家伙。
SDN的中文名称为软件定义网络,然而它的英文拼写除了正规的文献和专业人员,几乎很少被正确地表示出来。
百度百科对它的解释就是一个看似正确的表率:Software Defined Network。
其实我一开始也是这么以为的(甚至一开始我的解读是 Software Definition Network),不过玩文字游戏实在是没什么意思:请大家以后不要再拼错了,SDN的全称是:Software-defined Networking!这是来自Wikipedia和SDN官方网站的定义。
2.优化目标
3.数学建模
注:以上两点请见上一篇文章
4.核心算法
(1)图算法——网络拓扑可用图表示,其中重点涉及到的有最短路径算法和遍历算法(深度优先和广度优先);
(2)贪心算法——构造启发式算法的首选,多用于求解最优化问题;
(3)动态规划——将整个问题分解成若干子问题,子问题的最优解可导出整体最优解;
(4)排序算法——流的权重排序,流的带宽排序等等;
(5)NP问题(证明)——最优化问题是否是NP-hard。
5.NP-hard?
容易发现,许多文献中的最优化问题都是NP-hard问题,而求证NP-hard的原理是退化法,即对模型一步步弱化变量因素,使之退化为一个已知的NP-hard问题。接下来就是证明我所处理的优化问题,可以退化为一个已知的NP-hard问题:EAR。
重新列出第一优化目标如下:
min(max(∑f∈Fpfaf,l