8.3 Two-node combination

As an exemplar for combinatorial attack, we here remove any two nodes in combination, and assess the effect of such removal on the fraction of network nodes disconnected from the giant component.

df_nodes %>% arrange(-attackness) %>% pull(name) %>% utils::combn(2, simplify=F) -> combine
df_combine <- CombAttack(subg, combine) %>% transmute(nodes.removed=nodes.removed, attackness=frac.disconnected) %>% arrange(-attackness)

The results are stored in a tibble called df_combine, a data frame with two columns nodes.removed (removed nodes in combination) and attackness (sorted in a descending order).

df_combine
## # A tibble: 1,225 x 2
##    nodes.removed attackness
##    <chr>              <dbl>
##  1 Rac1,Traf2          0.56
##  2 Vav1,Traf2          0.56
##  3 Pik3cd,Traf2        0.56
##  4 Rac1,Nfkb1          0.56
##  5 Ncf1,Traf2          0.54
##  6 Traf2,Lck           0.54
##  7 Traf2,Cyba          0.54
##  8 Fgr,Traf2           0.52
##  9 Hck,Traf2           0.52
## 10 Prkcd,Traf2         0.52
## # … with 1,215 more rows