【CDN布局规划】背后的算法技术2—模型算法实现

导读:上篇文章 【CDN布局规划】背后的算法技术1—业务问题拆解中,我们介绍了CDN服务器的布局规划问题,分析了该问题需要考虑的业务目标和业务规则。本文将逐步给出该问题的数学模型和代码实现。



作者 1:向杜兵,算法专家,某制造业龙头
作者 2:张哲铭,算法专家,某互联网大厂


  • 明人不说暗话,【运筹匠心】想要大家的赞!赞!赞!。先赞后看,多多益善(* ̄︶ ̄)~~~
  • 本期推文代码获取方式,将推文转发朋友圈获20赞,添加管理员微信,管理员会定期回复数据代码链接哈~~~
  • 各个系列的开源资料会定期整理发放,大家可以加粉丝群领取哦~~~

请加管理员微信:IndustryOR


大家好!我们是IndustryOR 团队,致力于分享业界落地的算法技术。欢迎关注微信公众号/知乎【运筹匠心】 。本期我们来谈一谈《CDN布局规划的算法技术》。本期案例共分 3 篇文章依次讲解:(1)业务问题拆解;(2)模型算法实现;(3)多求解器批量求解对比。

本篇文章讲解(2)模型算法实现

共分为 3 个部分,依次为:
1.基础网络构建
2.数学模型刻画
3.模型代码实现

上篇文章业务问题拆解中我们一起对CDN布局规划问题进行了拆解,明确了问题的边界。然而,talk is cheap, show me your code,本篇将开始动手环节,建立该问题的数学模型,并编写模型代码。本文代码基于 Python 3.9 + Gurobi 10.0.3 。如果你手上没有 Gurobi ,或者想用别的求解器来求解,那该如何是好?难道要从头学习其他求解器的API,然后重新写一遍几乎完全一样的代码吗?Don’t Repeat Yourself我们下期也将介绍如何一键切换你的求解器,无需从头学习其他求解器的API,也无需编写新代码,直接求解

1.基础网络构建

业务问题拆解可知,该问题建立在一个基础的网络结构之上。因此,我们首先对网络基础要素进行梳理。

网络基础要素

设网络 G = ( V , E ) G=(V,E) G=(V,E)
V V V:节点集合。每个节点 i ∈ V i \in V iV存在以下关键属性:
1)需求 b i b_i bi

  • b i < 0 b_i<0 bi<0:该点为与用户直接相连的网络节点, ∣ b i ∣ |b_i| bi代表消费节点的需求带宽
  • b i > 0 b_i>0 bi>0:该点为服务器部署节点, ∣ b i ∣ |b_i| bi代表节点的输出能力
  • b i = 0 b_i=0 bi=0:该点为中间节点,只起到传输的作用

2)部署成本 d i d_i di:在节点 i i i部署服务器将产生的成本

E E E:弧集合。每条弧 ( i , j ) ∈ E (i,j) \in E (i,j)E,存在以下关键属性:

  • 容量上限 u i , j u_{i,j} ui,j:该条弧允许传输的最大带宽
  • 单位传输费用 c i , j c_{i,j} ci,j:该条弧单位带宽的费用
  • 流量 f i , j f_{i,j} fi,j:经过该条弧的总带宽

L = { 1 , . . . , m } L=\{1,...,m\} L={ 1,...,m}:服务器档次集合。每个档次 l ∈ L l \in L lL存在以下关键属性:

  • 硬件成本 h l h_l hl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值