Articulation Points in a Terrorist Network (netsle01)

/******************************************************************/
/*                                                                */
/*          S A S   S A M P L E   L I B R A R Y                   */
/*                                                                */
/*    NAME: netsle01                                              */
/*   TITLE: Articulation Points in a Terrorist Network (netsle01) */
/* PRODUCT: OR                                                    */
/*  SYSTEM: ALL                                                   */
/*    KEYS: OR                                                    */
/*   PROCS: OPTMODEL, PRINT                                       */
/*    DATA:                                                       */
/*                                                                */
/* SUPPORT:                             UPDATE:                   */
/*     REF:                                                       */
/*    MISC: Example 1 from the network solver documentation.      */
/*                                                                */
/******************************************************************/

data LinkSetInTerror911;
   input from & $32. to & $32.;
   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
Kamel Daoudi               Jerome Courtaillier
Jerome Courtaillier        Zacarias Moussaoui
Jerome Courtaillier        David Courtaillier
Zacarias Moussaoui         David Courtaillier
Zacarias Moussaoui         Ahmed Ressam
Zacarias Moussaoui         Abu Qatada
Zacarias Moussaoui         Ramzi Bin al-Shibh
Zacarias Moussaoui         Mahamed Atta
Ahmed Ressam               Haydar Abu Doha
Mehdi Khammoun             Haydar Abu Doha
Essid Sami Ben Khemais     Haydar Abu Doha
Mehdi Khammoun             Essid Sami Ben Khemais
Mehdi Khammoun             Mohamed Bensakhria
Abu Qatada                 Imad Eddin Barakat Yarkas
Abu Qatada                 Tarek Maarouti
Imad Eddin Barakat Yarkas  Tarek Maarouti
Essoussi Laaroussi         Tarek Maarouti
Mohamed Bensakhria         Tarek Maarouti
Seitallah Ben Hassine      Tarek Maarouti
Essid Sami Ben Khemais     Tarek Maarouti
Essoussi Laaroussi         Essid Sami Ben Khemais
Mohamed Bensakhria         Lased Ben Heni
Mohamed Bensakhria         Essid Sami Ben Khemais
Lased Ben Heni             Essid Sami Ben Khemais
Seitallah Ben Hassine      Essid Sami Ben Khemais
Fahid al Shakri            Essid Sami Ben Khemais
Madjid Sahoune             Essid Sami Ben Khemais
Samir Kishk                Essid Sami Ben Khemais
Mohamed Atta               Essid Sami Ben Khemais
Imad Eddin Barakat Yarkas  Mohamed Atta
Imad Eddin Barakat Yarkas  Ramzi Bin al-Shibh
Mohammed Belfas            Ramzi Bin al-Shibh
Mohammed Belfas            Agus Budiman
Abdelghani Mzoudi          Mohamed Atta
Agus Budiman               Ramzi Bin al-Shibh
Mohamed Atta               Ramzi Bin al-Shibh
Marwan Al-Shehhi           Ramzi Bin al-Shibh
Zakariya Essabar           Ramzi Bin al-Shibh
Ziad Jarrah                Ramzi Bin al-Shibh
Mounir El Motassadeq       Ramzi Bin al-Shibh
Said Baahaji               Ramzi Bin al-Shibh
Mounir El Motassadeq       Mohamed Atta
Mounir El Motassadeq       Marwan Al-Shehhi
Mounir El Motassadeq       Said Baahaji
Agus Budiman               Mohamed Atta
Agus Budiman               Marwan Al-Shehhi
Agus Budiman               Ziad Jarrah
Zakariya Essabar           Mohamed Atta
Zakariya Essabar           Marwan Al-Shehhi
Zakariya Essabar           Ziad Jarrah
Zakariya Essabar           Said Baahaji
Mohamed Atta               Said Baahaji
Marwan Al-Shehhi           Said Baahaji
Ziad Jarrah                Said Baahaji
Mamoun Darkazanli          Said Baahaji
Mamoun Darkazanli          Mohamed Atta
Mamoun Darkazanli          Marwan Al-Shehhi
Mamoun Darkazanli          Mamduh Mahmud Salim
Mohamed Atta               Ahmed Khalil brahim Samir Al-Ani
Mohamed Atta               Mustafa Ahmed al-Hisawi
Mohamed Atta               Fayez Ahmed
Mohamed Atta               Wail Alshehri
Mohamed Atta               Satam Suqami
Mohamed Atta               Abdul Aziz Al-Omari
Mohamed Atta               Ahmed Al Haznawi
Mohamed Atta               Nawaf Alhazmi
Mohamed Atta               Marwan Al-Shehhi
Mohamed Atta               Hani Hanjour
Mohamed Atta               Lotfi Raissi
Mohamed Atta               Ziad Jarrah
Mustafa Ahmed al-Hisawi    Marwan Al-Shehhi
Mustafa Ahmed al-Hisawi    Fayez Ahmed
Mustafa Ahmed al-Hisawi    Waleed Alshehri
Fayez Ahmed                Mohand Alshehri
Fayez Ahmed                Waleed Alshehri
Fayez Ahmed                Satam Suqami
Fayez Ahmed                Abdul Aziz Al-Omari
Fayez Ahmed                Wail Alshehri
Fayez Ahmed                Marwan Al-Shehhi
Wail Alshehri              Waleed Alshehri
Wail Alshehri              Satam Suqami
Wail Alshehri              Abdul Aziz Al-Omari
Wail Alshehri              Marwan Al-Shehhi
Waleed Alshehri            Satam Suqami
Waleed Alshehri            Abdul Aziz Al-Omari
Waleed Alshehri            Marwan Al-Shehhi
Satam Suqami               Marwan Al-Shehhi
Satam Suqami               Abdul Aziz Al-Omari
Satam Suqami               Raed Hijazi
Satam Suqami               Nabil al-Marabh
Abdul Aziz Al-Omari        Ahmed Alghamdi
Abdul Aziz Al-Omari        Salem Alhazmi
Abdul Aziz Al-Omari        Hani Hanjour
Abdul Aziz Al-Omari        Marwan Al-Shehhi
Hamza Alghamdi             Marwan Al-Shehhi
Salem Alhazmi              Marwan Al-Shehhi
Hani Hanjour               Marwan Al-Shehhi
Lotfi Raissi               Marwan Al-Shehhi
Ziad Jarrah                Marwan Al-Shehhi
Ziad Jarrah                Ahmed Al Haznawi
Ziad Jarrah                Salem Alhazmi
Ziad Jarrah                Hani Hanjour
Ziad Jarrah                Lotfi Raissi
Hani Hanjour               Lotfi Raissi
Rayed Mohammed Abdullah    Lotfi Raissi
Rayed Mohammed Abdullah    Bandar Alhazmi
Rayed Mohammed Abdullah    Hani Hanjour
Rayed Mohammed Abdullah    Faisal Al Salmi
Bandar Alhazmi             Hani Hanjour
Faisal Al Salmi            Hani Hanjour
Ahmed Alghamdi             Hani Hanjour
Salem Alhazmi              Hani Hanjour
Nawaf Alhazmi              Hani Hanjour
Khalid Al-Mihdhar          Hani Hanjour
Majed Moqed                Hani Hanjour
Salem Alhazmi              Ahmed Alghamdi
Salem Alhazmi              Nawaf Alhazmi
Salem Alhazmi              Khalid Al-Mihdhar
Salem Alhazmi              Majed Moqed
Nawaf Alhazmi              Majed Moqed
Khalid Al-Mihdhar          Majed Moqed
Ahmed Alghamdi             Nabil al-Marabh
Ahmed Alghamdi             Hamza Alghamdi
Ahmed Al Haznawi           Hamza Alghamdi
Ahmed Al Haznawi           Saeed Alghamdi
Mohand Alshehri            Hamza Alghamdi
Saeed Alghamdi             Hamza Alghamdi
Ahmed Alnami               Hamza Alghamdi
Nawaf Alhazmi              Hamza Alghamdi
Saeed Alghamdi             Nabil al-Marabh
Saeed Alghamdi             Raed Hijazi
Nabil al-Marabh            Raed Hijazi
Saeed Alghamdi             Nawaf Alhazmi
Saeed Alghamdi             Ahmed Alnami
Nawaf Alhazmi              Ahmed Alnami
Nawaf Alhazmi              Mohamed Abdi
Nawaf Alhazmi              Abdussattar Shaikh
Nawaf Alhazmi              Osama Awadallah
Nawaf Alhazmi              Khalid Al-Mihdhar
Osama Awadallah            Khalid Al-Mihdhar
Abdussattar Shaikh         Khalid Al-Mihdhar
Abdussattar Shaikh         Osama Awadallah
;

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;

proc print data=ArtPoints noobs label;
run;