The Network Solver (Experimental)

Example 8.1 Articulation Points in a Terrorist Network

This example considers the terrorist communications network from the attacks on the United States on September 11, 2001, described in Krebs 2002. Output 8.1.1 shows this network, which was constructed after the attacks, based on collected intelligence information. The image was created using SAS/GRAPH Network Visualization Workshop 2.1. (See the SAS/GRAPH: Network Visualization Workshop User's Guide.)

Output 8.1.1: Terrorist Communications Network from 9/11


The full network data include 153 links. The following statements show a small subset to illustrate the use of the BICONCOMP option in this context:

data LinkSetInTerror911;
   length from $25 to $32;
   input from to;
   datalines;
Abu_Zubeida                Djamal_Beghal
Jean-Marc_Grandvisir       Djamal_Beghal
Nizar_Trabelsi             Djamal_Beghal
Abu_Walid                  Djamal_Beghal
Abu_Qatada                 Djamal_Beghal
Zacarias_Moussaoui         Djamal_Beghal
Jerome_Courtaillier        Djamal_Beghal
Kamel_Daoudi               Djamal_Beghal
Abu_Walid                  Kamel_Daoudi
Abu_Walid                  Abu_Qatada
Kamel_Daoudi               Zacarias_Moussaoui

   ... more lines ...   

Nawaf_Alhazmi              Khalid_Al-Mihdhar
Osama_Awadallah            Khalid_Al-Mihdhar
Abdussattar_Shaikh         Khalid_Al-Mihdhar
Abdussattar_Shaikh         Osama_Awadallah
;

Suppose that this communications network had been discovered before the attack on 9/11. If the investigators’ goal was to disrupt the flow of communication between different groups within the organization, then they would want to focus on the people who are articulation points in the network.

To find the articulation points, use the following statements:

proc optmodel;
   set<str,str> LINKS;
   read data LinkSetInTerror911 into LINKS=[from to];
   set NODES = union{<i,j> in LINKS} {i,j};
   set<str> ARTPOINTS;

   solve with NETWORK /
      links     = (include=LINKS)
      biconcomp
      out       = (artpoints=ARTPOINTS)
   ;

   put ARTPOINTS;
   create data ArtPoints from [node]=ARTPOINTS artpoint=1;
quit;

The data set ArtPoints contains members of the network who are articulation points. Focusing investigations on cutting off these particular members could have caused a great deal of disruption in the terrorists’ ability to communicate when formulating the attack.

Output 8.1.2: Articulation Points of Terrorist Communications Network from 9/11

node artpoint
Djamal_Beghal 1
Zacarias_Moussaoui 1
Essid_Sami_Ben_Khemais 1
Mohamed_Atta 1
Mamoun_Darkazanli 1
Nawaf_Alhazmi 1