私は仮想ネットワークの埋め込みで作業しています。ネットワークを埋め込むためにglpkでモデルを作成しています。 私はこの次の目的関数を持っている: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];
その後、私は(とりわけ)以下の2つの制限
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の値をとる変数です。
他のすべて( "重量"、 "bwDem"、 "secDemEdges"、 "secSupEdge")は、単に
をparamsはしている私はFWで phiw を関連付けるしたいです。 FW == 0、 phiw は0
を値をとるべきとき phiw FW> 0、は値1をとるべきである場合には通常、それは私が欲しいものを行いますが、時には phiwがかかりますfwの値が0の場合の値1は、私が望むものではありません。制限が満たされているので、これは起こります:
例1:
S。T. relConst2:4 * 1> = 0
s.t. linkSecConst0:1 * 2 < = 2
の値を最小限に抑える方法はありますか?は可変ですが目的関数に入れませんか?あるいは、目的関数に入れても結果の値を変更しないことは、他のすべての変数の値ではありませんか?