【发布时间】:2016-10-01 04:14:15
【问题描述】:
我正在研究虚拟网络嵌入,我正在使用 glpk 创建一个模型来嵌入网络。 我有以下目标函数:
minimize cost: sum{(i,j) in VEdges} sum{u in SNodes, v in SNodes} weight[u,v] * fw[i,j,u,v] * secSupEdge[u,v] + sum{u in SNodes, v in SNodes} r[u,v] * secSupEdge[u,v];
那么我有以下两个限制(除其他外)
s.t. relConst2{(i,j) in VEdges, u in AllNodes, v in AllNodes}: bwDem[i,j] * phiw[i,j,u,v] >= fw[i,j,u,v];
s.t. linkSecConst0{(i,j) in VEdges, u in SNodes, v in SNodes}: phiw[i,j,u,v] * secDemEdge[i,j] <= secSupEdge[u,v];
“phiw”是二进制变量
"fw" 和 "r" 是取任何值 >= 0
的变量所有其他(“weight”、“bwDem”、“secDemEdges”、“secSupEdge” ) 只是参数
我想将 phiw 与 fw 联系起来。当 fw > 0 时,phiw 应取值 1。当 fw == 0 时,phiw 应取值值 0。
通常它会做我想要的,但有时 phiw 取值 1 而 fw 的值为 0,这不是我想要的。发生这种情况是因为满足了限制:
示例 1:
s.t. relConst2: 4 * 1 >= 0
s.t. linkSecConst0: 1 * 2
有没有办法最小化 phiw 变量的值但不将其放入目标函数中?还是把它放在目标函数中,但不改变结果的值,也不改变所有其他变量的值?
【问题讨论】: