Здесь maxFlowFordFulkerson()
возвращает значение для максимального потока, которое равно 28
, когда я использую матрицу arcs
в качестве аргумента. Однако мне нужно умножить столбец capacity
в дугах на константу k
, чтобы увидеть, как на максимальный поток влияет увеличение емкости, и сохранить эти значения в матрице sensitivity
. Я настроил tempArcs
как временную версию матрицы arcs
с емкостями, умноженными на k[i]
.
Моя проблема заключается в том, что единственными значениями, которые сохраняются в потоках, являются значения изПоследняя итерация. Я думал, что правильно инициализировал свои списки, так почему это не дает мне другие значения?
library(optrees)
nodes = c(1:8)
from = c(1,1,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7)
to = c(2,3,4,5,4,6,7,3,5,7,2,6,8,5,7,8,6,8)
capacity = c(20,15,10,15,13,15,10,13,10,12,15,7,10,7,8,8,8,10)
arcs = cbind(from, to, capacity)
k = c(1:10)
flows = c()
for (i in seq_along(k))
tempArcs = cbind(arcs[,-3], arcs[,3]*k[i])
max = maxFlowFordFulkerson(nodes, tempArcs)
flows = append(flows, max$max.flow)
sensitivity = cbind(k, flows)
sensitivity
k flows
[1,] 1 280
[2,] 2 280
[3,] 3 280
[4,] 4 280
[5,] 5 280
[6,] 6 280
[7,] 7 280
[8,] 8 280
[9,] 9 280
[10,] 10 280