Academia.eduAcademia.edu

SNA in R in Farsi

‫دانشگاه صنعتی امیرکبیر (پلی تکنیک تهران)‬ ‫دانشکذهی مهنذسی کامپیوتر و فنآوری اطالعات‬ ‫گزارش تحقیقی‪-‬عملی درس یادگیری ماشین‬ ‫آموزش گامبهگام تحلیل ضبکهاجتماعی در زبان ‪R‬‬ ‫نسخه ‪0.1‬‬ ‫نگارش‬ ‫محسن رئیسی‬ ‫)‪([email protected], ceit.aut.ac.ir/~raeesi‬‬ ‫استاد درس‬ ‫جناب آقای دکتر شیری‬ ‫تابستان ‪0101‬‬ ‫‪http://ceit.aut.ac.ir/~shiry/lecture/machine-learning/ml.html‬‬ ‫پیصگفتار‬ ‫(تْفیَ هیؽْد زتوب قجل اص هغبلعَ هتي هغتٌذ‪ ،‬ایي قغوت سا هغبلعَ ًوبییذ‪).‬‬ ‫هغتٌذ پیؼ سّ‪ ،‬ققذ داسد ثَ داًؼپژُّبى سا ثب تسلیل ؽجکَاختوبعی دس ‪ R‬آؽٌب کٌذ‪ .‬دس ایي گضاسػ فرشك‬ ‫ؽذٍ‪ ،‬خْاًٌذٍ هستشم تب زذی ثب صثبى ‪ً ّ R‬سٍْ کذ ًْیغی دس آى آؽٌب هیثبؽذ‪ .‬اص ایي سّ ثَ هقذهبتی چرْى اًرْا‬ ‫هتغیشُب‪ ،‬عبختبس دادٍای‪ ،‬ؽشط‪ ،‬زلقَ ّ ‪ً ...‬پشداختَاعت‪ .‬ثشای آؽٌبیی ثیؾتش ثب ایي هجبزث ثرَ "آؽرٌبیی ثرب صثربى‬ ‫هسبعجبت آهبسی ‪ًْ ،"R‬ؽتَ عیذ ععیذ هْعْیًذّؽٌی هشاخعَ ًوبییذ ‪.1‬‬ ‫فقل اّل ایي گضاسػ دس هْسد ‪ ،R‬تبسیخچَ ّ اهکبًبت آى هیثبؽذ‪ .‬هسیظ هْسد اعتفبدٍ دس تِیَ ایي گرضاسػ‪،‬‬ ‫هسیظ ًشمافضاس دادٍکبّی ‪ Rapidminer‬هیثبؽذ‪ .‬ایري ًرشمافرضاس اص ًغرخَ ‪ 5‬ثرَ ثعرذ‪ ،‬افضًّرَای سا ثرشای اخرشای‬ ‫دعتْسات ‪ ّ R‬اعتفبدٍ آى دس هسیظ خرْد اساهرَ داد‪ .‬اص ایريسّ فقرل دّم گرضاسػ‪ ،‬ثرَ ًسرٍْ ًقرت افضًّرَ ‪ R‬دس‬ ‫‪ ّ Rapidminer‬چگًْگی اعتفبدٍ اص آى اختقبؿ داسد‪.‬‬ ‫تبکٌْى چٌذیي کتبثخبًَ ثشای تسلیل ؽجکَاختوبعی دس ‪ ،R‬اساهَ ؽذٍاعت‪ .‬یکی اص قْیتشیي ایي کتبثخبًرَُرب‬ ‫‪ igraph‬هی ثبؽذ‪ .‬دس ایي هغتٌذ‪ ،‬هب اص ایي کتبثخبًَ ثشای تعشیف گشاف ّ تسلیل ؽجکَاختوبعی اعتفبدٍ هیًوربیین‪.‬‬ ‫اص ایي سّ اعکشیپُب ّ کذ ُبی اساهَ ؽذٍ دس فقل عْم ّ چِبسم ثش اعبط ایي کتبثخبًَ اساهَ ؽذٍاًرذ‪ .‬هٌجرا افرلی‬ ‫اعتفبدٍ ؽذٍ ثشای ایي فقْل ًیض‪ ،‬هغتٌذات ّ آهْصػُبی اساهَ ؽذٍ ثشای ‪ ]3,2,1[ igraph‬هریثبؽرٌذ کرَ عرعی‬ ‫ؽذٍ ثب تْضیسبت هٌبعت دس ایي هغتٌذ اساهَ ؽْد‪.‬‬ ‫ثَ هٌظْس تغِیل پیوبیؼ هتي گضاسػ‪ ،‬ثخؼُربی هختلرف دس فبیرل ‪ ،PDF‬ثرَ فرْست ‪ Bookmarked‬دس‬ ‫آهذٍاًذ‪ُ .‬وچٌیي ثشخی هٌبثا کوکی –هثل کذُبی فقل عْم ّ چِبسم‪ -‬ثَ فبیرل القربش ؽرذٍاعرت‪ .‬خْاًٌرذگبى‬ ‫هستشم تْخَ داؽتَثبؽٌذ کَ اعتفبدٍ اص هغتٌذ پیؼ سّ ثشای هقبسف تدبسی هدبص ًویثبؽذ‪.‬‬ ‫آسصّهٌذ دعبی خیش خْاًٌذگبى عضیض‬ ‫هسغي سهیغی‬ ‫‪http://cran.r-project.org/doc/contrib/Mousavi-R-lang_in_Farsi.pdf‬‬ ‫‪1‬‬ ‫فِرضت هطالب‬ ‫‪1‬‬ ‫هقذهَ ای بر ‪1........................................................................................................................................................... R‬‬ ‫‪ 3-3‬تبسیخچَ پشّژٍ‪3 ..........................................................................................................................................................................R‬‬ ‫‪ 2-3‬هشّسی ثش اهکبًبت ‪2 .................................................................................................................................................................. R‬‬ ‫‪ 1-3‬تسلیل ؽجکَاختوبعی دس ‪2 ..................................................................................................................................................... R‬‬ ‫‪2‬‬ ‫ًصب ‪ ّ R‬تؼبیَ آى در ًرمافسار ‪3.................................................................................................RapidMiner‬‬ ‫‪ 3-2‬هشازل ًقت ُغتَ افلی ‪1 .................................................................................................................................................... R‬‬ ‫‪ً 2-2‬قت افضًَّ ‪ R‬دس ‪4 ............................................................................................................................................. Rapidminer‬‬ ‫‪ 1-2‬هسیظ اعکشیپتًْیظ افضًَّ ‪7 .............................................................................................................................................. R‬‬ ‫‪ 4-2‬اعتفبدٍ اص ‪ R‬دس ‪8 ................................................................................................................................................ Rapidminer‬‬ ‫‪3‬‬ ‫هذلطازی گراف‪12 ........................................................................................................................................................‬‬ ‫‪ 3-1‬عبخت گشاف ‪34 .............................................................................................................................................................................‬‬ ‫‪ 2-1‬ایدبد گشاف اص سّی فبیل ثیشًّی ‪36...........................................................................................................................................‬‬ ‫‪ 1-1‬دعتکبسی دس عبختبس گشاف ‪37 ...................................................................................................................................................‬‬ ‫‪ 4-1‬اعتخشاج ُوغبیگی یبلُب ‪37 .....................................................................................................................................................‬‬ ‫‪ 5-1‬سعن گشاف ‪38 .................................................................................................................................................................................‬‬ ‫‪ 6-1‬دعتشعی ّ تغییش ففبت گشاف‪ ،‬گشٍُب ّ یبلُب‪23 .................................................................................................................‬‬ ‫‪4‬‬ ‫تحلیل شبکَاجتواػی‪24 ............................................................................................................................................‬‬ ‫‪ 3-4‬هسبعجَ اًْا تعبسیف هشکضیت گشٍ‪24 ......................................................................................................................................‬‬ ‫‪ 2-4‬تسلیل یک گشاف ًغجتب ثضسگ ‪27 ..............................................................................................................................................‬‬ ‫‪ 1-4‬عبختبسیبثی اختوب ‪13 .................................................................................................................................................................‬‬ ‫‪ 4-4‬ثلْکُبی چغجٌذٍ ‪11 ..................................................................................................................................................................‬‬ ‫‪5‬‬ ‫هراجغ‪35 ......................................................................................................................................................................‬‬ ‫فِرضت اشکال ّ جذاّل‬ ‫ؽکل ‪ .3‬لْگْی پشّژٍ ‪2............................................................................................................................................................R‬‬ ‫ؽکل ‪ً . 2‬وبیی اص یکی اص هشازل ًقت ًشمافضاس ‪1...............................................................................................................R‬‬ ‫ؽکل ‪ .1‬هسیظ کٌغْل ًشمافضاس ‪4.......................................................................................................................................... R‬‬ ‫ؽکل ‪ .4‬سّؽي کشدى افضًَّ ‪ R‬دس ‪5............................................................................................................... Rapidminer‬‬ ‫ؽکل ‪ .5‬اضبفَ کشدى هتغیشُبی هسیغی هشتجظ ثَ تٌظیوبت افضًَّ ‪6 ........................................................................... R‬‬ ‫ؽکل ‪ .6‬اضبفَ ؽذى آیکي ‪ R‬دس ًْاساثضاس فْقبًی‪7...................................................................................................................‬‬ ‫ؽکل ‪ً .7‬وبی کلی افضًَّ ‪ R‬دس ‪8....................................................................................................................Rapidminer‬‬ ‫ؽکل ‪ .8‬عولگشُبی ‪ R‬دس ًْاساثضاس‪8............................................................................................................................................‬‬ ‫ؽکل ‪ .9‬آیکي فضبی کبسیُبی هستلف دس ‪9............................................................................................... Rapidminer‬‬ ‫ؽکل ‪ .33‬هشازل رخیشٍ دادٍُبی ‪ R‬دس‪9....................................................................................................... Repository‬‬ ‫ؽکل ‪ً .33‬سٍْ تعشثف خشّخی عولگش )‪33 ...................................................................................... Execute Script (R‬‬ ‫ؽکل ‪ .32‬هذل فشآیٌذ کلی هشازل تسلیل گشاف کلْپ کبساتَ‪33 ........................................................................................‬‬ ‫ؽکل ‪ً .31‬تیدَ عبختبسیبثی اًدبمؽذٍ دس فشآیٌذ فْش ‪33 ....................................................................................................‬‬ ‫ؽکل ‪ .34‬گشاف ثذّى خِت‪32 ...................................................................................................................................................‬‬ ‫ؽکل ‪ .35‬گشاف خِت داس‪32 .......................................................................................................................................................‬‬ ‫ؽکل ‪ً .36‬وًَْای اص یک ؽجکَ ثیهقیبط‪ .‬قغتُب ثَ فْست سًگی ًؾبى دادٍ ؽذٍاًذ‪39 ............................................‬‬ ‫ؽکل ‪ .37‬گشاف سعن ؽذٍ دس هسیظ ‪23 .....................................................................................................................tkplot‬‬ ‫ؽکل ‪ .38‬گشاف عَ ثعذی سعن ؽذٍ ثب ‪23 ............................................................................................................... rglplot‬‬ ‫ؽکل ‪ .39‬هیبًگیي دسخَ ًقبط دس گشاف قضبیی‪22 .................................................................................................................‬‬ ‫ؽکل ‪ .23‬یک گشاف تقبدفی کَ سًگ یبلُبی آى ثش اعبط سًگ گشٍُب هتوبیض گؾتَاعت‪21 .................................... .‬‬ ‫ؽکل ‪ .23‬گشافی کَ ‪ Degree centrality‬گشٍُبی آى دس کٌبس ُش گشٍ ًْؽتَ ؽذٍاعت‪25 ........................................‬‬ ‫ؽکل ‪ .22‬هشکضیت ‪ Betweenness‬گشٍُبی گشاف ‪26 ..........................................................................................................‬‬ ‫ؽکل ‪ .21‬هشکضیت ‪ Closeness‬گشٍُبی گشاف ‪26 .................................................................................................................‬‬ ‫ؽکل ‪ .24‬هشکضیت ‪ Eigenvector‬گشٍُبی گشاف‪26 .............................................................................................................‬‬ ‫ؽکل ‪ .25‬تْصیا دسخَُبی ّسّدی گشاف قضبیی‪28 ................................................................................................................‬‬ ‫ؽکل ‪" .26‬عبختبس اختوب " دس گشاف یک ؽجکَاختوبعی‪13 .................................................................................................‬‬ ‫ؽکل ‪ .27‬اختوبعبت ثَ دعت آهذٍ ثب الگْسیتن ‪ fastgreedy‬سّی هدوْعَ دادٍ کلْپ کبساتَ ‪12 ................................‬‬ ‫ؽکل ‪ .28‬اختوبعبت ثَ دعت آهذٍ ثب الگْسیتن ‪ Spinglass‬سّی هدوْعَ دادٍ کلْپ کبساتَ‪12 .................................‬‬ ‫ؽکل ‪ .29‬عبختبس ثلْکثٌذی چغجٌذگی ثَ دعتآهذٍ‪14 ....................................................................................................‬‬ ‫هقذهَ ای ثش‪R‬‬ ‫‪3‬‬ ‫‪ 1‬مقدمه ای بر ‪R‬‬ ‫صثبى ‪ ،R‬یک صثبى ثشًبهًَْیغی ّ هسیظ ًشمافضاسی ثشای هسبعجبت آهبسی ّ تسلیل دادٍ اعت‪ .‬اهشّصٍ ایي صثبى ثرَ‬ ‫عٌْاى یک اعتبًذاسد غیش سعوی ثشای کبسُبی آهبسی ّ دادٍکبّی هغشذ هریثبؽرذ[‪ .]4‬ایري صثربى دس زقیقرت ًغرخَ‬ ‫هتيثبص ًشمافضاس ‪ S‬هیثبؽذ [‪ .]5‬صثبى ‪ R‬تْعظ ًشمافضاسی ثَ ُویي ًبم کَ ؽبهل هفغش صثبى ّ هسیظ اعکشیپتًْیغری‬ ‫اعت پؾتیجبًی هیگشدد‪ .‬ایي ًشمافضاس‪ ،‬ثبصهتي ثْدٍ ّ تست اخبصًٍبهَ عوْهی ُوگبًی گٌْ عشضَ هیؽْد‪ً .‬غخَُبی ‪R‬‬ ‫ثقْست سایگبى ّ ثشای اًْا عیغتنُبی عبهل (ّیٌذّص‪ ،‬هک ّ اًْا تْصیاُبی لیٌْکظ) اساهَ ؽذٍاعرت‪ُ .‬غرتَ افرلی‬ ‫ًشمافضاس ‪ R‬ثرَ ُورشاٍ ثریؼ اص ‪ 4133‬کتبثخبًرَ هرشتجظ ثرب آى‪ ،‬دس ؽرجهَ ‪(comprehensive R archive CRAN‬‬ ‫)‪ network‬دس دعتشط کبسثشاى هیثبؽذ‪ .‬ایي ؽجکَ کَ هخضى هٌبثا هشتجظ ثب ‪ R‬هیثبؽذ‪ ،‬اص عرشّسُبی داًؾرگبٍُربی‬ ‫هختلف عشاعش خِبى ثشای ًگِذاسی ّ گشفتي ًغخَ پؾتیجبى اص ایي دادٍُب اعتفبدٍ هیکٌذ‪ .1‬دس هیِي عضیرض اعرالهی‬ ‫هب ًیض‪ ،‬داًؾگبٍ فشدّعی هؾِذ یکی اص هشاکض ًگِذاسی ًغخَُبی ‪ R‬هیثبؽذ‪.2‬‬ ‫دس زبل زبضش اگش چَ ُیچ ؽشکت تدبسی پؾتیجبى سعوی ‪ R‬سا ثش عِذٍ ًذاسد ‪ ،‬اهب ؽجهَ پؾرتیجبًی غیشسعروی‬ ‫آى اص عشیق پیبمُبی ایٌتشًتی ‪ r-help‬قبثل دعتشط اعت‪ .‬دس زبل زبضش ‪ً R‬شم افضاسی كبهل ّ ثریًقرـ ًیغرت ّ اص‬ ‫آًدب كَ آصاد ّ سایگبى ُن هی ثبؽذ‪ ،‬اص پیؾٌِبدات كبسثشاى ثشای افالذ ّ تْععَ آى اعتقجبل هیكٌذ‪.‬‬ ‫‪ 1-1‬تاریخچَ پرّژٍ ‪R‬‬ ‫پشّژٍ ‪ R‬دس عبل ‪ 3993‬دس گشٍّ آهبس داًؾگبٍ ‪ Auckland‬کؾْس ًیْصیلٌذ کلیذ خْسد‪ .‬ثٌیربىگرزاساى ایري پرشّژٍ‬ ‫آقبیبى ‪ Robert Gentelman ّ Ross Ihaka‬ثْدًذ‪ّ .‬خَ تغویَ ایي صثبى ًیض اثتذای ًربم ایري دس ًفرش هریثبؽرذ (دس‬ ‫دپبستوبى آهبس ایي داًؾگبٍ ایي پشّژٍ ثَ "‪ً "R&R‬یض هعشّف هیثبؽذ‪ .).‬دس زبل زبضش تیوی هتؾهل اص ‪ً39‬فش دس زربل‬ ‫تْععَ ایي عشذ هیثبؽٌذ‪.‬‬ ‫‪ R‬ثشای اّلیي ثبس دس عبل ‪ 3991‬ثَ عْس عوْهی هعشفی گشدیذ‪ .‬دس ‪ 3995‬هبستیي هبچلش‪ ،‬ساط ّ ساثشت سا هتقبعرذ‬ ‫ًوْد تب تست هدْص گٌْ‪ R ،‬سا ثَ یک ًشمافضاس سایگبى تجذیل ًوبیٌذ‪ .‬یک عبل ثعذ لیغرت سایبًبهرَ عورْهی ایري پرشّژٍ‬ ‫ایدبد گشدیذ (‪ )R-devel ّ R-help‬کَ ثَ کوک آى تْععَدٌُذگبى ّ کبسثشاى دس عشاعرش خِربى ثرب یکرذیگش هرشتجظ‬ ‫هیؽذًذ‪ .‬دس ‪ُ 3997‬غتَ افلی تْععَدٌُذٍ ‪ R‬کَ ؽبهل ثشخی اص اعضبی پشّژٍ ‪ً S-Plus‬یض ثْدًذ ایدربد ؽرذ‪ .‬ایري‬ ‫‪http://cran.r-project.org/mirrors.html‬‬ ‫‪http://cran.um.ac.ir/‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫‪1‬‬ ‫‪2‬‬ ‫هقذهَ ای ثش‪R‬‬ ‫‪2‬‬ ‫گشٍّ‪ّ ،‬ظیفَ کٌتشل ّ ًظبست ثش کذ ثشًبهَ سا ثَ عِذٍ داؽت‪ .‬ثب ترالػُربی تْعرعَدٌُرذگبى‪ ،‬دس عربل ‪ 2333‬اّلریي‬ ‫ًغخَ ‪ R‬اساهَ گشدیذ‪ .‬آخشیي ًغخَ اساهَ ؽذٍ ایي ًشمافضاس ‪ 2.13.1‬هیثبؽذ کَ دس ‪ 2333/7/8‬هٌتؾش ؽذٍاعت‪.‬‬ ‫شکل ‪ .1‬لْگْی پرّژٍ ‪R‬‬ ‫‪ 2-1‬هرّری بر اهکاًات ‪R‬‬ ‫‪ R‬یك هدوْعَ كبهل اص اههبًبت ًشم افضاسی ثشای كبسكشدى ثب دادٍ ُب ّ هسبعجَ ّ سعن ًوْداس هی ثبؽذ‪ .‬اص خولرَ‬ ‫اههبًبت ایي هدوْعَ هیتْاى ثَ هْاسد صیش اؽبسٍ کشد‪:‬‬ ‫‪ ‬صثبى ثشًبهًَْیغی عبدٍ ّ پیؾشفتَ ؽبهل عجبستُبی ؽشعی‪ ،‬زلقَ ّ تْاثا ثبصگؾتی ّ ‪. ...‬‬ ‫‪ ‬اههبًبت رخیشٍ‪ ،‬ثبصیبثی ّ دعتکبسی دادٍُب‬ ‫‪ ‬هدوْعَای قْی اص عولگشُبی هسبعجبتی آسایَُب ّ هبتشیظُب‬ ‫‪ ‬ثغتَُبی ًشمافضاسی قذستوٌذ ثشای تدضیَ ّ تسلیل آهبسی‬ ‫‪ ‬کتبثخبًَُبی اًدبم عولیبت دادٍکربّی ّ یربدگیشی هبؽریي هبًٌرذ دعرتَثٌرذی‪ ،‬خْؽرَثٌرذی‪ ،‬تسلیرل‬ ‫ؽجکَاختوبعی‪ ،‬یبدگیشی تقْیتی ّ ‪...‬‬ ‫‪ ‬اههبًبت گشافیهی ثشای تدضیَ ّ تسلیل دادٍُب ّ سعن ًوْداس‬ ‫‪ ‬کتبثخبًَُبی خبؿ هٌظْسٍ ثشای اًدبم عولیبت تسلیلی دس صهیٌَُبی هختلف علوی‬ ‫‪ ‬داسای هغتٌذات فشهتثٌذی ؽذٍ ّ هٌظن ثشای اعتفبدٍ اص صثبى ّ کتبثخبًَُبی هشتجظ‬ ‫‪ 3-1‬تحلیل شبکَاجتواػی در ‪R‬‬ ‫یکی اص هِوتشیي اثضاسُبی تسلیرل ّ هقْسعربصی ؽرجکَاختوربعی دس زرْصٍ آکبدهیرک ّ تدربسی‪ R ،‬هریثبؽرذ‪.‬‬ ‫ثغتَُبی ‪ ... ّ snort ،egonet ،sna ،statnet ،igraph‬اص خولَ آىُب هیثبؽذ‪ .‬دس ایي گضاسػ هب اص ‪ igraph‬ثَ عٌْاى‬ ‫اثضاس اعتفبدٍ هیکٌین‪ .‬عبختبس دادٍای ‪ُ igraph‬وبٌُگ ثب ‪ sna ّ statnet‬هیثبؽذ‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪1‬‬ ‫‪ 2‬نصب ‪ R‬و تعبیه آن در نرمافسار ‪RapidMiner‬‬ ‫ثشای اعتفبدٍ اص ‪ R‬دس ًشمافضاس قذستوٌذ ‪ Rapidminer‬ثبیذ اثتذا ُغتَ افلی ‪ R‬سا ًقرت کٌرین ّ عرپظ افضًّرَ‬ ‫هشثْعَ دس ‪ Rapidminer‬سا فعبل ّ تٌظین ًوبیین‪ .‬دس اداهَ ثب هشازل ایي عولیبت آؽٌب خْاُین ؽذ‪.‬‬ ‫‪ 1-2‬هراحل ًصب ُطتَ اصلی ‪R‬‬ ‫ثشای ًقت ُغتَ افلی ًشمافضاس ‪ R‬کبفی اعت کَ ثَ عربیت ‪ www.r-project.org‬هشاخعرَ کرشدٍ ّ ثرَ ثخرؼ‬ ‫داًلْد ‪ CRAN‬ثشّیذ‪ .‬دس ایي ففسَ‪ ،‬آدسطُبی تعذادی اص عبیتُبیی کَ پشّژٍ ‪ R‬دس آى رخیشٍ هریؽرْد قرشاس داسد‪.‬‬ ‫هستْای توبهی ایي عبیتُب یکغبى اعت‪ ،‬ثٌبثشایي ثب اًتخبة یکی اص آىُب ثَ ففسَ داًلْد ثشّیذ‪ .‬دس ایي هشزلَ پظ اص‬ ‫اًتخبة عیغتن عبهل خْد‪ ،‬دّ لیٌک ثشای ؽوب ًوبیؼ دادٍ هیؽْد‪:‬‬ ‫‪ُ :base .3‬غتَ افلی ‪ R‬کَ ثشای ًقت اّلیَ ثَ آى ًیبص داسیذ‪.‬‬ ‫‪ :contrib .2‬ثغتَُبی ًشمافضاسی کَ تْعظ کبسثشاى عشاعش خِبى ایدبد ؽذٍ ّ تْعظ تین تْععَدٌُرذگبى‬ ‫هذیشیت هیؽْد‪.‬‬ ‫شکل ‪ً . 2‬وایی از یکی از هراحل ًصب ًرمافسار ‪R‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪4‬‬ ‫اص آىخب کَ هب ققذ داسین ‪ R‬سا ثشای اّلیي ثبس ًقت کٌین‪ ،‬سّی گضیٌرَ ‪ base‬کلیرک کرشدٍ ّ خذیرذتشیي ًغرخَ‬ ‫هشثْعَ سا داًلْد هیًوبیین‪ .‬اص آىخب کَ ًغخَ ًقت ؽذٍ تْعظ ًگبسًذٍ سّی عیغتنعبهرل ّیٌرذّص هریثبؽرذ‪ ،‬ؽربیذ‬ ‫ثشخی اص تْضیسبت اداهَ هْسد اعتفبدٍ کبسثشاى دیگش عیغتنعبهلُب ًجبؽذ‪.‬‬ ‫ًقت ‪ R‬اص سّی فبیل اخشایی ثغیبس عبدٍ هیثبؽذ ّ تٌِب کبفی اعت ثب کلیک ثش سّی فبیل اخشایی هشازل ًقت سا‬ ‫اص سّی ‪ Wizard‬اًدبم دُیذ‪ .‬دس هشازل ًقت یبیذ اعالعبتی اص قجیل پْؽَ ًقت‪ ،‬کبهپًٌْتُبیی کَ ثبیذ ًقرت ؽرْد‬ ‫(ؽکل ‪ ... ّ )2‬سا ّاسد ًوبییذ‪ .‬پظ اص ًقت ؽوب هیتْاًیذ ثب اعتفبدٍ اص یک کٌغْل (ؽکل ‪ًْ ّ )1‬ؽتي اعرکشیپتُربی‬ ‫هشثْعَ ثَ صثبى ‪ R‬اص اهکبًبت ایي ًشمافضاس اعتفبدٍ ًوبییذ‪.‬‬ ‫شکل ‪ .3‬هحیظ کٌطْل ًرمافسار ‪R‬‬ ‫‪ً 2-2‬صب افسًَّ ‪ R‬در ‪Rapidminer‬‬ ‫ًشمافضاس ‪ Rapidminer‬اص ًغخَ ‪ 5‬ثَ ثعذ‪ ،‬افضًَّ ‪ R‬سا ثَ اهکبًبت خْد افضّد‪ .‬ثَ کوک ایي افضًَّ ؽوب هریتْاًیرذ‬ ‫اص هسیظ ‪ Rapidminer‬ثشای ًْؽتي اعکشیپتُبی ‪ ّ R‬ایدبد هبژّلُبی قبثل اعرتفبدٍ دس دیگرش ثخرؼُرب‪ ،‬اعرتفبدٍ‬ ‫کٌیذ‪ .‬ثشای ًقت افضًَّ ‪ R‬هشزلَ اثتذایی ثذیي فْست اعرت کرَ اص هٌرْی ‪ ،help‬گضیٌرَ ‪ Update Rapidminer‬سا‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪5‬‬ ‫اًتخبة هیکٌیذ ّ عپظ ثش سّی گضیٌَ ‪ install‬کلیک ًوبییذ (ؽکل ‪ .)4‬ثعذ اص اًدبم ایري کربس‪ ،‬افضًّرَ هرْسد ًظرش اص‬ ‫ایٌتشًت داًلْد ؽذٍ ّ ًقت هی گشدد‪ .‬ثشای اًدبم ثقیَ هشازل ثبیذ پظ اًدبم تٌظیوبتی کَ دس اداهرَ ثیربى هریگرشدد‪،‬‬ ‫‪ Rapidminer‬سا هدذدا ساٍاًذاصی کٌیذ‪.‬‬ ‫شکل ‪ .4‬رّشي کردى افسًَّ ‪ R‬در ‪Rapidminer‬‬ ‫ثقیَ هشازل ًقت ‪ ،R‬ثَ تٌظین ثخؼُبی هختلف هشثْط هیؽْد کَ ثَ فْست صیش اًدبم هیپزیشد‪:‬‬ ‫‪ .3‬ثعذ اص ساٍاًذاصی ًغخَ هٌبعت ‪ ،R‬ؽوب ثبیذ ثغتَ ًشمافضاسی ‪ rJava‬سا اص ‪ CRAN‬داًلْد ّ ًقت ًوبییذ‪.‬‬ ‫ثرررذیي هٌظرررْس ثرررَ هسررریظ کٌغرررْل ‪ R‬ثشّیرررذ ّ دس هسرررل اعرررکشیپت ًْیغررری آى عجررربست‬ ‫)"‪ install.packages("rJava‬سا تبیپ ًوبییذ‪ .‬دس فْستی کَ ثَ ایٌتشًت هتقل ثبؽریذ ایري ثغرتَ ثرَ‬ ‫فْست خْدکبس داًلْد ّ ًقت هیگشدد‪.‬‬ ‫‪ .2‬عجبست )(‪ .libPaths‬سا دس کٌغْل تبیپ کٌیذ‪ .‬دس یکی اص پْؽرَُربی ًوربیؼ دادٍ ؽرذٍ‪ ،‬ثغرتَ ‪rJava‬‬ ‫ًقت ؽذٍاعت‪ .‬ایي آدسط سا ثشای ٌُگبم ثبص کشدى ‪ Rapidminer‬ثَ خبعش ثغپبسیذ‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪6‬‬ ‫‪ .1‬ثشای ایي کَ هغوئي ؽْیذ ‪ Rapidminer‬هریتْاًرذ کتبثخبًرَُربی ‪ R‬سا پیرذا کٌرذ‪ ،‬ثبیرذ هتغیشُربی‬ ‫هسیغی‪ 1‬عیغتنعبهل خْد سا تٌظین ًوبییذ‪ .‬دقت کٌیذ کَ اعن ایي هتغیش زغبط ثَ زشّف کْچرک ّ‬ ‫ثضسگ هیثبؽذ‬ ‫‪ ‬هتغیش ‪ PATH‬سا ثب هقذاس ‪ّ <R installation directory>\bin‬اسد ًوبییذ‪ .‬ثرَ عٌرْاى ًوًْرَ‬ ‫ایي هقذاس ثبیرذ هؾربثَ ‪ C:\Program Files\Rapid-I\RapidMiner5\jre\bin‬ثبؽرذ‪ .‬ایري‬ ‫پْؽَ ثبیذ ؽبهل فبیلُبی ‪ً 2dll‬شمافضاس ‪ ّ R‬کتبثخبًَ ُبی هشتجظ ثبؽذ‪ .‬دقرت کٌیرذ کرَ ایري‬ ‫پْؽَ ثبیذ ؽبهل فبیل ‪ R.dll‬ثبؽذ‪.‬‬ ‫‪ ‬چٌبًچَ دس هتغیشُبی هسیغی عیغتن عبهل ؽوب ‪JAVA_HOME‬ی کَ ثَ پْؽَ ًقت خبّا‬ ‫اؽبسٍ کٌذ‪ّ ،‬خْد ًذاسد؛ ثبیذ ایي هتغیش سا ًیض اضبفَ ًوبییذ‪ .‬دس فْستی کَ خبّا ًیض سّی سایبًرَ‬ ‫ؽوب ًقت ًوریثبؽرذ‪ ،‬هقرذاس ‪ <RapidMiner installation directory>/jre‬سا ثرشای ایري‬ ‫هتغیش ّاسد ًوبییذ‪ .‬دقت کٌیذ کَ خبّای ًقت ؽذٍ سّی سایبًَ ؽروب ثبیرذ اص لسربػ ‪ 12‬یرب ‪64‬‬ ‫ثیت ثْدى‪ ،‬هغبثق ‪ Rapidminer ّ R‬ثبؽذ‪.‬‬ ‫شکل ‪ .5‬اضافَ کردى هتغیرُای هحیطی هرتبظ بَ تٌظیوات افسًَّ ‪R‬‬ ‫‪Environment Variable‬‬ ‫‪dynamic link library‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫‪1‬‬ ‫‪2‬‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪7‬‬ ‫‪ ‬هتغیش ‪ً R_HOME‬یض ثبیذ ثَ هتغیشُبی هسیغی اضبفَ گشدد‪ .‬هقرذاس ایري ثرَ پْؽرَ ًغرخَ‬ ‫ًقت ؽرذٍ ‪ R‬اؽربسٍ کٌرذ‪( .‬ثرَ عٌرْاى هثربل ‪ )D:\Program Files\R\R-2.13.0‬ؽرکل ‪5‬‬ ‫چگًْگی تٌظین ایي هتغیش سا ًؾبى هیدُذ‪.‬‬ ‫‪ .4‬دس ایي هشزلَ ؽوب هیتْاًیذ ًشمافضاس ‪ Rapidminer‬سا ثبص کٌیذ‪ .‬قجل اص ؽشّ ثَ کبس ثشًبهرَ‪ ،‬فرفسَای‬ ‫ثَ ؽوب ًوبیؼ دادٍ هیؽْد کَ هشازل ًقت سّی آى ًْؽرتَؽرذٍ اعرت‪ .‬سّی دکورَ ‪ Next‬کٌیرذ‪ .‬دس‬ ‫ففسَ ثعذی اص ؽوب خْاعتَ هیؽْد آدسط کتبثخبًَ ‪jri‬ی ثب ‪ً rJava‬قت کشدٍایذ سا هؾخـ ًوبییرذ‪.‬‬ ‫ثذیي هٌظْس آدسط ‪ libPaths‬سا اص هشزلَ ‪ 2‬ثَ خبعش ثیبّسیذ ّ ثرَ ‪<libpath directory>/rJava/jri/‬‬ ‫ثشّیذ‪ .‬دس ایي پْؽَ فبیل ‪ jri.dll‬سا اًتخبة ًوبییذ‪.‬‬ ‫‪ .5‬اگش فبیل هؾخـ ؽذٍ سا اًتخبة کشدٍ ثبؽیذ‪ ،‬ثشًبهَ ثغتَ هیؽرْد‪ .‬دّثربسٍ ًرشمافرضاس ‪ Rapidminer‬سا‬ ‫اخشا ًوبییذ‪ .‬چٌبًچَ افضًَّ ثب هْفقیت ًقت ؽذٍثبؽذ‪ ،‬ثب ُیچ دعتْس خغربیی دس ٌُگربم اخرشا ثشخرْسد‬ ‫ًخْاُیذ کشد‪ .‬دس غیش ایي فْست زتوب یکی اص هشازل فْش سا ثَ دسعتی اًدبم ًذادٍایذ‪.‬‬ ‫دس فْست ًقت فسیر افضًَّ‪ ،‬ثبیذ پظ اص ثبال آهذى ثشًبهَ ثبیذ عالهت ‪ R‬دس ًْاس اثضاس فْقربًی (هغربثق ؽرکل ‪)6‬‬ ‫اضبفَ ؽذٍثبؽذ‪.‬‬ ‫شکل ‪ .6‬اضافَ شذى آیکي ‪ R‬در ًْارابسار فْقاًی‬ ‫‪ 3-2‬هحیظ اضکریپتًْیص افسًَّ ‪R‬‬ ‫هسیظ ‪ R‬دس ًشمافضاس ‪ Rapidminer‬ثَ ُوبى فْست اعکشیپت ًْیغی تعجیَ ؽذٍاعت [‪ .]6‬ؽکل ‪ً 7‬وربی کلری‬ ‫آى ًؾبى دادٍؽذٍاعت‪ .‬دس قغوت ّعظ پبییي‪ ،‬ؽوب اهکبى ًْؽتي اعکشیپتُبی هرْسد ًظرش سا داسیرذ‪ .‬ثرب صدى ‪Enter‬‬ ‫ایي اعکشیپتُب اخشا هیؽًْذ ّ ًتبیح آى دس کٌغْل ثبالی آى (ًوبیؼدادٍ ؽذٍ ثب سًرگ عرجض) ًؾربى دادٍهریؽرًْذ‪.‬‬ ‫هتغیشُبیی کَ دس زیي کبس ثب ثشًبهَ ایدبد هیکٌیذ دس پٌل عوت چپ ًوبیؼ دادٍ هیؽًْذ‪ .‬چٌبچَ ؽروب ًورْداسی سا‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪8‬‬ ‫سعن کٌیذ‪ ،‬دس پٌل ًؾبىدادٍ ؽذٍ ثب سًگ آثی ًوبیؼ دادٍ هیؽْد‪ .‬ؽکل سعن ؽذٍ سا هیتْاًیذ ثب دکوَ گْؽرَ پٌرل‬ ‫دس اًْا فشهت ُبی تقْیش رخیشٍ ًوبییذ‪ .‬ثب دّثبس کلیک سّی عٌْاى ُش کذام اص ایي پٌلُب‪ ،‬آىُب ثَ زبلت توبم فرفسَ‬ ‫ّ ثشعکظ دس خْاٌُذ آهذ‪ .‬آخشیي پٌلی کَ دس ایي ففسَ ّخْد داسد‪ ،‬پٌل ساٌُوبعت‪ .‬دس فْستی کَ ؽوب هریخْاُیرذ‬ ‫ثَ ساٌُوبی دعتْس ‪ x‬دعتشعی پیذا کٌیذ‪ ،‬هیتْاًیذ ثَ کوک اعکشیپت‬ ‫‪x‬‬ ‫? ایي کبس سا اًدبم دُیذ‪.‬‬ ‫شکل ‪ً .7‬وای کلی افسًَّ ‪ R‬در ‪Rapidminer‬‬ ‫‪ 4-2‬اضتفادٍ از ‪ R‬در ‪Rapidminer‬‬ ‫ثشای اعتفبدٍ اص ‪ R‬دس هسیظ عشازی)‪ ، )Design‬هدوْعَ عولگشُبی هخقْفی دس هسیظ ‪ Rapidminer‬تعجیَ‬ ‫ؽذٍاعت‪ .‬ؽکل ‪ 8‬ایي عولگشُب سا ًؾبى هیدُیذ‪ .‬ثشخی اص ایي عولگشُب خبؿ هٌظْسٍ ّ ثشخی عبم هٌظْسٍ هیثبؽٌذ‪.‬‬ ‫شکل ‪ .8‬ػولگرُای ‪ R‬در ًْارابسار‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪9‬‬ ‫دس ‪ Rapidminer‬چٌذ هسیظ کبسی (‪ّ )Perspective‬خْد داسد‪ .‬هِنتشیي آىُب عجبستٌذ اص‪:‬‬ ‫‪ .3‬هسیظ عشازی‪ :‬فضبیکبس ایدبد خشیبى کبس دادٍکبّی‪.‬‬ ‫‪ .2‬هسیظ ًتبیح‪ :‬فضبیکبس هؾبُذٍ ًتبیح ثذعت آهذٍ‪.‬‬ ‫‪ .1‬هسیظ ‪ :R‬فضبیکبس اعکشیپتًْیغی ثَ صثبى ‪.R‬‬ ‫شکل ‪ .9‬آیکي فضای کاریُای هحتلف در ‪Rapidminer‬‬ ‫ثشای ایي کَ ثتْاًین دادٍُبی ‪ R‬سا دس هسیظ عشازی ّاسد ًوبیین‪ ،‬اثتذا ثبیذ دس هسیظ ‪ R‬آىُب سا دس عٌرْاى یرک‬ ‫‪ Repository‬رخیشٍ ًوبیین‪ .‬ثَ عٌْاى ًوًَْ‪ ،‬دس ؽکل ‪ 33‬رخیشٍ هدوْعَدادٍ کبساتَ ًؾبى دادٍ ؽذٍاعت‪.‬‬ ‫شکل ‪ .11‬هراحل رخیرٍ دادٍُای ‪ R‬در‪Repository‬‬ ‫زبل ثَ هسیظ عشازی هیسّین‪ ّ ،‬ثب کؾیذى (‪ Drag‬کشدى) هٌجادادٍ کبساتَ ثَ ًوبی ‪ ،Process‬آى سا دس فشآیٌرذ‬ ‫دادٍکبّی ّاسد هیًوبیین‪ .‬ثَ عْس پیؼفشك عولگش ثبصیبثی (‪ )Retrive‬ثشای ثبسگزاسی هدوْعَدادٍ‪ ،‬ثرَ فشآیٌرذ افرلی‬ ‫اضبفَ هیگشدد ّ تٌِب پبساهتش آى ‪-‬کَ ‪ Repository Entry‬اعت‪ -،‬ثَ فْست خْدکبس پش هیؽْد‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪33‬‬ ‫خشّخی عولگش قجلی سا ثَ ّسّدی یرک عولگرش )‪ّ Execute Script (R‬فرل کٌیرذ‪ .‬ایري عولگرش‪ ،‬یرک عولگرش‬ ‫عبمهٌظْسٍ اعت ّ اعکشیپتُبی دلخْاٍ سا اخشا هیًوبیذ‪ .‬ثشای تٌظین ایري عولگرش ثبیرذ عرَ پربساهتش اعرکشیپت‪ً ،‬ربم‬ ‫ّسّدیُب ّ خشّخی ُب سا ّاسد ًوبییذ‪ .‬هب ققذ داسین سّی گشاف کبساتَ‪ ،‬عبختبسیبثی اختوب اًدربم دُرین‪ .‬ثٌربثشایي کرذ‬ ‫عولیبت ثَ فْست صیش اعت‪ُ ،karate .‬وبى هدوْعَدادٍ ّسّدی اعت‪.‬‬ ‫)'‪library('igraph‬‬ ‫‪graph <- karate‬‬ ‫)‪graph <- simplify(graph‬‬ ‫)‪spc <- spinglass.community(graph, spins=20‬‬ ‫)‪result <- as.data.frame(spc$membership‬‬ ‫هتغیشُبی هؾخـؽذٍ ثب سًگ قشهض‪ ،‬خشّخیُبی ایي اعکشیپتُغتٌذ‪ .‬کال دّ ًْ خشّخری ثرشای عولگرش فرْش‬ ‫ّخْد داسد‪:‬‬ ‫‪ :Generic R Result .3‬کَ ؽبهل اًْا هتغیشُب‪ّ ،‬کتْسُب‪ ،‬آسایَُب ّ ‪ R ...‬هیؽْد‪ .‬ایري خشّخریُرب تٌِرب‬ ‫قبثل پشداصػ ثشای عولگشُبی افضًَّ ‪ُ R‬غتٌذ‪.‬‬ ‫‪ :Data Table .2‬ایي خشّخی هعبدل ‪ data frame‬دس ‪ R‬اعت‪ .‬زتوب ثبیرذ خرٌظ ایري ًرْ خشّخری دس‬ ‫اعکشیپت‪ ،‬ثَ ‪ data frame‬تجذیل ؽرذٍثبؽرذ‪ .‬چٌبًچرَ ثخْاُیرذ ًتربیح اعرکشیپت ثرشای عولگرشُربی‬ ‫‪ Rapidminer‬قبثل فِن ثبؽذ ّ ثَ فْست خذّل ًوبیؼ دادٍؽْد‪ ،‬ثبیذ اص ایي ًْ اعتفبدٍ کٌیذ‪.‬‬ ‫تْخَ داؽتَ ثبؽیذ کَ تشتیت تعشیف خشّخیُب دس ایي عولگش هِناعت‪ .‬ثَ عْسی کَ پشتُبی خشّخی ثَ ُوربى‬ ‫تشتیت تعشیف ؽذٍ دس پبساهتش ‪ ،Result‬پش هیؽًْذ‪.‬‬ ‫شکل ‪ً .11‬حٍْ تؼربف خرّجی ػولگر )‪Execute Script (R‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫ًقت ‪ ّ R‬تعجیَ آى دس ًشمافضاس‪RapidMiner‬‬ ‫‪33‬‬ ‫اص آًدب کَ ققذ داسین ًتبیح عبختبسیبثی پیؾیي سا سعن ّ دس ‪ Clipboard‬ثَ فْست تقرْیش ضرجظ ًوربیین‪ ،‬یرک‬ ‫عولگش دیگش ایدبد هیکٌین کَ ایي عولیبت سا اًدبم دُذ‪.‬‬ ‫)'‪library('igraph‬‬ ‫)‪res <- as.data.frame(spc$csize‬‬ ‫)(‪x11‬‬ ‫‪plot(graph, layout=layout.kamada.kawai(graph), vertex.size=5,‬‬ ‫)‪vertex.label=NA, vertex.color=spc$membership+1, asp=FALSE‬‬ ‫)"‪savePlot(filename = "clipboard", type = "png‬‬ ‫هذل فشآیٌذ کلی‪ ،‬هشازل ثبال دس ؽکل ‪ً ّ 32‬تیدَ اخشای عبختبسیبثی دس ؽکل ‪ً 31‬وبیؼ دادٍؽذٍاعرت‪ .‬الجترَ‬ ‫ثبیذ تْخَ داؽت‪ ،‬افضًَّ فعلی ‪ٌُْ ،R‬ص داسای هؾکالت ثغیبسی اعت ّ اخشای ثشخی اص دعتْسات ثرب هؾرکالتی هْاخرَ‬ ‫اعت‪ .‬اص خولَ آى هیتْاى ثَ ثغتَؽذى پٌدشٍ ًتبیح سعنؽذٍ ثب اتوبم اخشای فشآیٌذ‪ ،‬اؽبسٍ ًوْد‪.‬‬ ‫شکل ‪ .12‬هذل فرآیٌذ کلی هراحل تحلیل گراف کلْپ کاراتَ‬ ‫شکل ‪ً .13‬تیجَ ضاختاریابی اًجامشذٍ در فرآیٌذ فْق‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪32‬‬ ‫‪ 3‬مدلسازی گراف‬ ‫اص آى خب کَ اعبط کبس هب ثش کتبثخبًَ ‪ igraph‬اعتْاس اعت‪ ،‬دس اداهَ ًسرٍْ هذلغربصی گرشاف دس ایري کتبثخبًرَ سا‬ ‫ثشسعی هیًوبیین‪ .‬گشاف یک استجبط ثبیٌشی (یبلُب) ثیي اعضبی یک هدوْعَ (گشٍُب) اعت‪ .‬اگش دّ عضْی کرَ ثرب ُرن‬ ‫ساثغَ داسًذ ثذّى تشتیت ثبؽٌذ‪ ،‬آىگبٍ گشاف ثذّى خِت اعت (ؽکل ‪ّ )34‬گشًَ گشاف خِت داس هیثبؽذ (ؽکل ‪.)35‬‬ ‫شکل ‪ .14‬گراف بذّى جِت‬ ‫شکل ‪ .15‬گراف جِت دار‬ ‫ُوْاسٍ گشٍُب اص ففش ؽوبسٍگزاسی هیؽْد ّ ثَ فْست هتٌبّة تب ‪ n-1‬اداهَ هییبثذ‪ .‬ثرَ عٌرْاى ًوًْرَ دس گرشاف‬ ‫ؽکل ‪ .... ّ C=2 ،B=1 ،A=0 ،34‬هیثبؽذ‪ .‬تعشیف گشافُبی ؽکل ‪ ّ 34‬ؽکل ‪ 35‬دس ‪ R‬ثَ فرْست صیرش هریثبؽرذ‪:‬‬ ‫تْخَ داؽتَ ثبؽیذ کَ ثشای اعتفبدٍ اص کتبثخبًَُبی ‪ igraph‬اثتذا ثبیذ آى سا ثب )‪ library(igraph‬ثبسگرزاسی‬ ‫کٌیذ‪.‬‬ ‫‪## Load the igraph package‬‬ ‫)‪library(igraph‬‬ ‫‪## Create a small graph, A->B, A->C, B->C, C->E, D‬‬ ‫‪## A=0, B=1, C=2, D=3, E=4‬‬ ‫) ‪g <- graph( c(0,1, 0,2, 1,2, 2,4), n=5‬‬ ‫‪## Print a graph to the screen‬‬ ‫‪g‬‬ ‫‪## Create an undirected graph as well‬‬ ‫‪## A--B, A--C, B--C, C--E, D‬‬ ‫) ‪g2 <- graph( c(0,1, 0,2, 1,2, 2,4), n=5, dir=FALSE‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪31‬‬ ‫‪g2‬‬ ‫ثشای ایي کَ خٌظ ُش یک اص هتغیشُب سا هؾخـ کٌیذ‪ ،‬هیتْاى اص دعتْس ‪ class‬اعتفبدٍ ًوْد‪.‬‬ ‫‪## How to decide what kind of object a variable refers to‬‬ ‫)‪class(g2‬‬ ‫)‪class(1‬‬ ‫)"‪class("foobar‬‬ ‫ًتیدَ اخشای دعتْسات ثبال ثَ فْست صیش خْاُذ ثْد‪:‬‬ ‫"‪[1] "igraph‬‬ ‫"‪[1] "numeric‬‬ ‫"‪[1] "character‬‬ ‫ثَ کوک تبثا)(‪ is.igraph‬هیتْاًیذ اص گشاف ثْدى یک ؽی اعویٌبى زبفل ًوبییذ‪:‬‬ ‫?‪## Is this object an igraph graph‬‬ ‫)‪is.igraph(g‬‬ ‫)‪is.igraph(1:10‬‬ ‫چٌبًچَ یک ؽی گشاف ثبؽذ‪ ،‬دعتْسات صیش اعالعبت ثیؾتشی اص عبختبس گشاف ّ تعذاد گشٍ ّ یبلُب اساهَ هیکٌٌذ‪:‬‬ ‫‪## Summary, number of vertices, edges‬‬ ‫)‪summary(g‬‬ ‫)‪vcount(g‬‬ ‫)‪ecount(g‬‬ ‫دعتْس خِتداس ثْدى گشاف سا هؾخـ هی کٌذ‪ .‬ایي تبثا تٌِب ثشای گشاف تعشیف ؽرذٍ ّ ثرشای دیگرش اؽریب خغرب‬ ‫هیدُذ‪ .‬ؽوب هیتْاًیذ ُش یک اص گشافُبی خِتداس ّ ثذّى خِت سا ثَ یکذیگش تجرذیل ًوبییرذ‪ .‬چٌبًچرَ یرک گرشاف‬ ‫خِتداس‪ ،‬ثذّى خِت ؽْد توبهی یبلُب فقظ ثَ یبل ثذّى خِت تجذیل هیگشدد‪ .‬چٌبًچرَ استجربط یرک یربل دّعشفرَ‬ ‫ثبؽذ ًیض دّ یبل ثَ یک یبل تجذیل هی ؽْد‪ .‬ایي دسزبلی اعت کَ دس تجذیل ثذّى خِت ثَ خِتداس ُش یبل ثَ دّ یربل‬ ‫سفت ّ ثشگؾت هجذل هیگشدد‪.‬‬ ‫?‪## Is the graph directed‬‬ ‫)‪is.directed(g‬‬ ‫)‪is.directed(g2‬‬ ‫)‪is.directed(1:10‬‬ ‫‪## Convert from directed to undirected‬‬ ‫)‪as.undirected(g‬‬ ‫‪## And back‬‬ ‫))‪as.directed(as.undirected(g‬‬ ‫دس یک گشاف هیتْاى چٌذیبل ثیي دّ گشٍ تعشیف کشد‪ .‬هثال دس گشاف ))‪: E = ((AB); (AB); (AC); (BC‬‬ ‫‪## Multiple edges‬‬ ‫) ‪g <- graph( c(0,1, 0,1, 0,2, 1,2 ), n=5‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪34‬‬ ‫تؾخیـ عبدٍ ثرْدى یرب چٌرذ یربلی ثرْدى گرشاف ثرب تْاثرا )‪is.multiple(g) ّ is.simple(g‬‬ ‫اهکبى پزیش اعت‪ُ .‬وچٌیي اگش ثخْاُین یک گشاف چٌذیبلَ سا ثَ گشاف عبدٍ تجرذیل ًوربیین‪ ،‬هریترْاى اص دعرتْس صیرش‬ ‫اعتفبدٍ ًوْد‪.‬‬ ‫‪## Remove multiple edges‬‬ ‫)‪g <- simplify(g‬‬ ‫)‪is.simple(g‬‬ ‫یکی دیگش اص قبثلیت ُبیی کَ اهکبى تعشیف آى ثشای گشاف ّخْد داسد‪ ،‬افضّدى عْقَ هریثبؽرذ‪ .‬ثرب ‪simplify‬‬ ‫کشدى یک گشاف عْقَُب ًیض اص ثیي خْاُذ سفت‪.‬‬ ‫‪## Loop edges‬‬ ‫) ‪g <- graph( c(0,0,0,1, 0,2, 1,2, 3,4), n=5‬‬ ‫)‪is.simple(g‬‬ ‫)‪is.loop(g‬‬ ‫‪## Remove loop edges‬‬ ‫)‪g <- simplify(g‬‬ ‫)‪is.simple(g‬‬ ‫یکی اص قبثلیتُبی ‪ igraph‬ثشای ؽی گشاف‪ ،‬اهکبى ًبهگزاسی گشٍُب هیثبؽذ‪ .‬دس اعکشیپت صیرش اثترذا یرک گرشاف‬ ‫‪ 33‬گشٍ ای ثَ فْست زلقْی (ُش گشٍ تٌِب ثب یبل قجلی ّ ثعذی ساثغَ داسد‪ُ .‬وچٌیي یبل اثترذا ّ اًتِربیی ًیرض ثرَ ُرن‬ ‫هتقل هیگشدًذ‪ ).‬ایدبد هیؽْد‪ .‬اعبهی گشٍُب ثَ تشتیت ‪ 33‬زشف اثتذایی الفجبی اًگلیغی تعییي هیگشدد‪.‬‬ ‫‪## Naming vertices‬‬ ‫)‪g <- graph.ring(10‬‬ ‫]‪V(g)$name <- letters[1:10‬‬ ‫‪V(g)$name‬‬ ‫‪g‬‬ ‫)‪print(g, v=T‬‬ ‫دّ ًکتَ خبًجی دس کذ ثبال ّخْد داسد‪ .‬اّل ایي کَ ثب افضّدى ‪ $name‬یک ففت ثَ )‪ V(g‬اضبفَ کرشدین کرَ دس‬ ‫اداهَ قبثل دعتشعی اعت‪ .‬افضّدى ففبت دیگش ُن هؾبثَ ُویي فشآیٌذ اعت‪ً .‬کتَ دّم تبثا ‪ print‬اعت کَ ثرَ هرب‬ ‫اخبصٍ هی دُذ تب اعالعبتی کَ اص گشاف دس کٌغْل چبپ هیؽْد سا هذیشیت ًوبیین‪ .‬هثال دس کذ ثربال گرشٍُرب سا ًیرض ثرَ‬ ‫هْاسدی کَ ًؾبى دادٍ هیؽْد اضبفَ ًوْدین‪.‬‬ ‫‪ 1-3‬ضاخت گراف‬ ‫یکی اص اثضاسُبی ‪ igraph‬ثشای ایدبد گشاف اص سّی ًبم یبلُب ‪ graph.formula‬هیثبؽذ‪ .‬ثَ کوک ایي تربثا‬ ‫تٌِب ؽوب کبفی اعت هغیشُبی هختلف ثیي یبلُب سا دس گشاف هؾخـ ًوبییذ‪ .‬کذ صیش ایدبد یک گشاف غیشخِرتداس سا‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪35‬‬ ‫ًؾبى هیدُذ‪ .‬عولگش "‪( "-‬عولگش یبل) ًؾبىدٌُذٍ ّخْد استجبط ثیي دّ گشٍ هیثبؽذ‪ .‬ثَ کورک ایري تربثا ًیربصی ثرَ‬ ‫تعشیف هدوْعَ گشٍُب ثَ فْست خذاگبًَ ّخْد ًذاسد‪.‬‬ ‫‪## A simple undirected graph‬‬ ‫‪g <- graph.formula(Alice-Bob-Cecil-Alice,‬‬ ‫) ‪Daniel-Cecil-Eugene, Cecil-Gordon‬‬ ‫عولگش "‪ ":‬ثشای تعشیف یک هدوْعَ گشٍ اعتفبدٍ هیؽْد‪ .‬اگش دّ هدوْعَ ثب عولگش یبل ثرَ ُرن هتقرل ثبؽرٌذ‪،‬‬ ‫توبهی گشٍُبی دّ هدوْعَ ثب ُن استجبط داسًذ‪ .‬ثٌبثشایي ایري عولگرش ًغرجت ثرَ "‪ "-‬تقرذم داسد‪ .‬ثرَ عٌرْاى ًوًْرَ دس‬ ‫اعررکشیپت صیررش‪ Cecil:Daniel-Eugene:Gordon ،‬هؾررخـکٌٌررذٍ یرربلُرربی ‪،Cecil-Eugene‬‬ ‫‪ Daniel-Gordon ّ Cecil-Gordon ،Cecil-Eugene‬سا هؾخـ هیدُذ‪.‬‬ ‫‪## Another undirected graph, ":" notation‬‬ ‫‪g2 <- graph.formula(Alice-Bob:Cecil:Daniel,‬‬ ‫) ‪Cecil:Daniel-Eugene:Gordon‬‬ ‫ثشای تعشیف گشاف خِتداس دس "‪ "+‬اعتفبدٍ هیًوبیین‪ .‬ایي عولگش ًؾبىدٌُذٍ خِت هریثبؽرذ‪ .‬تْخرَ کٌیرذ کرَ‬ ‫"‪ "+-+‬یک یبل دّ عشفَ اعت‪ ًَ ،‬دّ یبل یک عشفَ‪ .‬صیبد ثْدى تعذاد "‪ُ"-‬ب ثشای ًوبیؼ یک یبل ثذّى هعٌی اعت‪.‬‬ ‫‪## A directed graph‬‬ ‫‪g3 <- graph.formula(Alice +-+ Bob --+ Cecil‬‬ ‫) ‪+-- Daniel, Eugene --+ Gordon:Helen‬‬ ‫‪## "Arrows" can be arbitrarily long‬‬ ‫) ‪g5 <- graph.formula( Alice +---------+ Bob‬‬ ‫ُوچٌیي ثشخی اص گشٍُب هیتْاًٌذ ثَ فْست ایضّلَ تعشیف ؽًْذ‪.‬‬ ‫‪## A graph with isolate vertices‬‬ ‫‪g4 <- graph.formula(Alice -- Bob -- Daniel,‬‬ ‫) ‪Cecil:Gordon, Helen‬‬ ‫اص دیگش ساٍُبی ایدبد گشاف خِتداس‪ ،‬اعتفبدٍ اص تبثا ‪ cbind‬اعت‪ .‬ثَ کوک ایي تبثا هیترْاى ثرب القربش دّ اص‬ ‫هدوْعَ گشٍُب کَ ثَ تعذاد هغبّی گشٍ داسًذ‪ ،‬هدوْعَای اص صّج هشتتُب ثَ ّخْد آّسد‪ .‬صّج هشتتُبیی کَ اص تشکیت‬ ‫اعضبی ًظیش ثَ ّخْد آهذٍ اًذ‪ .‬ثعذ اص ایدبد ایي هدوْعَ هشکت ثرَ کورک تربثا ‪ graph.edgelist‬هریترْاى‬ ‫گشافی هْسد ًظش سا ایدبد ًوْد‪.‬‬ ‫‪## From edge lists‬‬ ‫‪el <- cbind( c(0, 0, 1, 2),‬‬ ‫) )‪c(1, 2, 2, 4‬‬ ‫)‪g <- graph.edgelist(el‬‬ ‫‪g‬‬ ‫فشآیٌذ فْش سا ثَ خبی ؽوبسٍ گشٍ‪ ،‬هیتْاى ثب ًبمُبی عوجلیک گشٍُب ًیض اًدبم داد‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ 36 ## Symbolic edge lists el <- cbind( c("Alice", "Alice", "Bob", "Cecil"), c("Bob", "Cecil", "Cecil", "Ed") ) g <- graph.edgelist(el) g summary(g) ‫ ثرب‬33 ‫ دس‬33 ‫ دس صیرش یرک گرشاف‬.‫ اعرتفبدٍ هربتشیظ هدربّست اعرت‬،‫یک سّػ هتذاّل دیگش ثشای ایدبد گشاف‬ .‫یبلُبی تقبدفی ایدبد ؽذٍاعت‬ ## Adjacency matrices A <- matrix(sample(0:1, 100, rep=TRUE), 10, 10) g <- graph.adjacency(A) ‫ ایجاد گراف از رّی فایل بیرًّی‬2-3 ‫ یکری اص‬.‫ دس فبیلُربی هتٌری رخیرشٍ هریؽرًْذ‬،‫توبم گشافُبیی کَ اص سّی دادٍُبی دًیبی ّاقا ایدبد هیؽًْذ‬ ‫ُرب‬data frame ‫ دس اداهَ فشآیٌذ ایدربد گرشاف اص سّی‬.‫ اعت‬R ‫ کشدى ایي دادٍُب دس‬import ،‫ًیبصُبی افلی کبسثشاى‬ ٍ‫ تعجیرَ ًؾرذٍ اعرتفبد‬igraph ‫ ثشای خْاًذى ایي اعالعبت اثتذا ًیبص داسین اص کذی کرَ ٌُرْص دس‬.‫ًؾبى دادٍ ؽذٍ اعت‬ .‫کٌین‬ ## We need some extra code, not in the current version yet source("http://cneurocvs.rmki.kfki.hu/igraph/plus.R") .‫عپظ ثَ تشتیت گشٍُب ّ یبلُبی هْسد ًظش سا ثبسگزاسی ًوبیین‬ ## Read the comma-separated value file vertices <- read.csv(" http://cneurocvs.rmki.kfki.hu/igraph/judicial.csv") ## Read the edges, just a table, space separated edges <- read.table( "http://cneurocvs.rmki.kfki.hu/igraph/allcites.txt") .‫ هیتْاى گشاف سا ایدبد ًوْد‬graph.data.frame ‫ثب تشکیت یبلُب ّ گشٍُب ثَ کوک‬ ## And create the graph jg <- graph.data.frame(edges, vertices=vertices, dir=TRUE) summary(jg) ‫ ثرب سّؽري کرشدى‬.‫چٌبًچَ ثخْاُیذ هی تْاًیذ ایي گشاف سا ثشای اعتفبدٍ ُبی ثعذی دس یک فبیرل رخیرشٍ ًوبییرذ‬ .‫ زدن ایي فبیل ًیض کبُؼ هییبثذ‬،‫قبثلیت فؾشدٍعبصی‬ ## Save it for future use save(jg, file="judicial.Rdata.gz", compress=TRUE) ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫هذلغبصی گشاف‬ ‫‪37‬‬ ‫‪ 3-3‬دضتکاری در ضاختار گراف‬ ‫اص عولیبت ؽبیا سّی گشاف اضبفَ ّ کن کشدى گشٍ ّ یبلُبی آى هیثبؽذ‪ .‬دس ایي قغوت گشاف ‪ g2‬کرَ قرجال آى‬ ‫سا ایدبد ًوْدین دعتکبسی هیًوبیین‪ .‬دس اثتذا گشٍ اّل آى سا ززف هیکٌین‪.‬‬ ‫‪## Remove alice‬‬ ‫)‪g3 <- delete.vertices(g2, 0‬‬ ‫اضبفَ کشدى گشٍ ثَ کوک تبثا ‪ add.vertices‬اًدبم هیؽْد‪ّ .‬سّدیُبی ایي تبثا گرشاف ّ تعرذاد گشُری‬ ‫کَ ثبیذ اضبفَ ؽْد اعت‪ .‬کذ خذیذی کَ دس اعکشیپت صیش اضبفَ ؽذٍاعت‪ igraph.par ،‬هیثبؽذ‪ .‬ثَ کوک ایري‬ ‫تبثا هیتْاى پبساهتشُبی ‪ igraph‬سا تٌظین ًوْد‪ .‬هثال هب چبپ ففبت گشٍُب سا فعبل کشدین تب اعبهی ًوبیؼ دادٍ ؽْد‪.‬‬ ‫‪## Add three new vertices‬‬ ‫)‪g4 <- add.vertices(g3, 3‬‬ ‫)‪igraph.par("print.vertex.attributes", TRUE‬‬ ‫‪g4‬‬ ‫‪ add.vertices‬ایي اهکبى سا ًیض ثَ هب هیدُذ کَ ٌُگبم اضبفَ کشدى گشٍ اعبهی گرشٍُرب سا ًیرض هؾرخـ‬ ‫ًوبیین‪ّ .‬سّدی اعبهی زتوب ثبیذ ثَ فْست لیغت ثبؽذ‪ ،‬دس هثبل صیش هب ففت ‪ name‬سا ثَ گشٍُب اضبفَ هیًوبیین‪.‬‬ ‫‪## Add three new vertices, with names this time‬‬ ‫)))"‪g4 <- add.vertices(g3, 3, attr=list(name=c("Ha", "Ik", "Ja‬‬ ‫‪g4‬‬ ‫هؾبثَ گشٍ‪ ،‬اضبفَ کشدى یبل ًیض ثَ سازتی ثب تبثا ‪ add.edges‬اهکبىپزیش اعت‪.‬‬ ‫‪## Add some edges as well‬‬ ‫))‪g4 <- add.edges(g4, c(6,7, 5,7‬‬ ‫‪g4‬‬ ‫‪ 4-3‬اضتخراج ُوطایگی یالُا‬ ‫آهْصػ ایي ثخؼ سّی گشاف ‪ g2‬اًدبم هیؽْد کَ ثب اعکشیپت صیش آى سا ایدبد هیًوبیین‪ .‬اگش ثخرْاُین ؽٌبعرَ‬ ‫یک یبل سا ثیبثین‪ ،‬دعتْس ‪ as.vector‬ایي قبثلیت سا ثشای هب فشاُن هیکٌذ‪.‬‬ ‫‪## Create directed example graph‬‬ ‫‪g2 <- graph.formula(Alice -+ Bob:Cecil:Daniel,‬‬ ‫) ‪Cecil:Daniel +-+ Eugene:Gordon‬‬ ‫)‪print(g2, v=T‬‬ ‫‪## Get the id of the edge‬‬ ‫)))‪as.vector(E(g2, P=c(0,1‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪38‬‬ ‫دس ثغیبسی اص الگْسیتنُب هب ًیبص داسین ثَ یبلُبی هدبّس یک گشٍ دعتشعی پیذا کٌین‪ .‬تبثا )(‪ adj‬ایي قبثلیرت‬ ‫سا دس اختیبس هب قشاس هیدُذ‪ّ .‬سّدی ایي تبثا یک یب چٌذ گشٍ هیثبؽذ‪.‬‬ ‫‪## All adjacent edges of a vertex‬‬ ‫] )‪E(g2)[ adj(2‬‬ ‫‪## Or multiple vertices‬‬ ‫] ))‪E(g2)[ adj(c(2,0‬‬ ‫چٌبًچَ گشافی خِتداس ثبؽذ‪ ،‬هیتْاى ثیي یبلُبی ّسّدی ّ خشّخی اص یک گشٍ توربیض قبهرل ؽرذ ّ ثرَ فرْست‬ ‫خذاگبًَ ثَ ُش یک دعتشعی داؽت‪.‬‬ ‫‪## Outgoing edges‬‬ ‫] )‪E(g2)[ from(2‬‬ ‫‪## Incoming edges‬‬ ‫] )‪E(g2)[ to(2‬‬ ‫یکی اص قبثلیتُبی خْة ‪ igraph‬ایي اعت کَ هب هیتْاًین یبلُبیی کَ ثیي یک هغیش اص گرشٍُرب قرشاس داسًرذ سا‬ ‫اعتخشاج ًوبیین‪ .‬الجتَ ا یي قبثلیت تٌِب ٌُگبهی قبثل اعتفبدٍ اعت کَ یک هغیش کبهل سا دس ّسّدی تربثا قرشاس دُرین‪.‬‬ ‫چٌبًچَ یکی اص گشٍُبی هغیش رکش ًؾْد‪ ،‬ثب خغب هْاخَ هیؽْین‪.‬‬ ‫‪## Edges along a path‬‬ ‫))‪E(g2, path=c(0,3,4‬‬ ‫ًتیدَ دعتْس ثبال ثَ فْست صیش خْاُذ ثْد‪:‬‬ ‫‪Edge sequence:‬‬ ‫‪[2] Alice -> Daniel‬‬ ‫‪[8] Daniel -> Eugene‬‬ ‫‪ 5-3‬رضن گراف‬ ‫ثشای سعن گشاف اص عَ تبثا صیش هیتْاى اعتفبدٍ ًوْد‪:‬‬ ‫‪ ،plot .3‬سعن عبدٍ‪ ،‬دّثعذی ّ غیش تعبهلی گشاف اعت‪ .‬ایي تبثا پیبدٍعبصی تبثا عوْهی ‪ plot‬هیثبؽذ‪.‬‬ ‫‪ ،tkplot .2‬تبثعی ثشای سعن دّثعذی ّ تعبهلی گشاف هیثبؽذ کَ اص کتبثخبًَ ‪ tcltk‬اعتفبدٍ هریکٌرذ‪ .‬ایري‬ ‫تبثا ثشای سعن گشافُبیی تب اًذاصٍ هتْعظ –زذاکثش چٌذ ُضاس گشٍ‪ -‬اعتفبدٍ هیؽْد‪ ،‬صیشا هقشف هٌبثا‬ ‫آى صیبد اعت‪ .‬ثَ کوک ‪ tkplot‬هیتْاى ثشخی اص ّیژگیُبی گشاف سا دس صهبى اخشا تغییش داد‪.‬‬ ‫‪ :rglplot .1‬یک تبثا آصهبیؾی ثشای سعن عَثعذی تْاثرا اعرت کرَ اص ‪ OpenGL‬اعرتفبدٍ هریًوبیرذ‪ .‬دس‬ ‫گشاف سعنؽذٍ هیتْاى عولیبت ثضسگٌوبیی‪ ،‬چشخؼ ّ اًتقبل سا اًدبم داد‪ ،‬اهب خبی گشٍُب ثبثت اعت‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪39‬‬ ‫دس اداهَ ثشای سعن‪ ،‬اثتذا یک ؽجکَ ثیهقیبط (‪ )scale-free‬هیعبصین‪ .‬ؽجکَُبی ثیهقیبط کَ تْعظ آلجرشت ّ‬ ‫ثبساثبعی گغتشػ یبفتٌذ [‪ ،]7‬ثب فشآیٌذ اتقبل تشخیسی سؽذ هیکٌٌذ‪ .‬ؽکل ‪ 36‬یک ؽجکَ ثی هقیبط اتقبلُبی تربصٍ‬ ‫ثَ عْس تشخیسی ثَ عوت گشٍُبی «قغت» (هشکضی‪ )hub-‬خِتگیشی هیکٌٌذ‪.‬‬ ‫شکل ‪ً .16‬وًَْای از یک شبکَ بیهقیاش‪ .‬قطبُا بَ صْرت رًگی ًشاى دادٍ شذٍاًذ‪.‬‬ ‫ؽجکَ ُبی ثی هقیبط عذد «خِؼ» (‪ )hops‬هتْعظ کْچکی ثشای سفتي اص یک گرشٍ دس ؽرجکَ ثرَ گرشٍ دیگرش‬ ‫داسًذ‪ .‬ایي هغلت ثب صهبى فشف ؽذٍ ثشای اسعبل یک پیبم اص عشك ؽجکَ دس استجبط اعت‪ .‬ؽجکَ ُبی ثری هقیربط ثرَ‬ ‫دلیل ایٌکَ دس عی یک زولَ عوذی ثَ گشٍ ُبی هشکضی هتالؽی هیؾًْذ‪ ،‬عشازی خْثی ثشای ؽجکَُبی هخبثشاتی ثَ‬ ‫ؽوبس ًویسًّذ‪ .‬ثَ ُش زبل‪ ،‬آىُب کبهال ثَ ًقـُبی تقبدفی هقبّهٌذ‪ .‬دس عغر ‪( TCP/IP‬اهب ًرَ دس عرغر فیضیکری)‬ ‫ایٌتشًت ًیض یک ؽجکَ ثی هقیبط اعت‪ .‬ثشای ًوًَْ‪ google.com ،‬ثَ عٌْاى «گشٍ قغت» افلی عورل هریکٌرذ‪ .‬ایري‬ ‫عبختبس هٌغقی ثیهقیبط ایٌتشًت‪ ،‬گغتشػ ّیشّطُبی کبهپیْتشی سا تقْیت هیکٌذ‪.‬‬ ‫دس اعکشیپت صیش تبثا ‪ barabasi.game‬یک ؽجکَ ثیهقیبط یرک اتقربلَ ثرب ‪ 333‬گرشٍ ایدربد هریکٌرذ‪.‬‬ ‫یکاتقبلَ گشاف ثْدى ثَ ایي هعٌبعت کَ ُش گشٍ خذیذ ثَ یک گشٍ هْخْد هتقل هیؽْد‪.‬‬ ‫‪## Create a scale-free network‬‬ ‫)‪g <- barabasi.game(100, m=1‬‬ ‫)‪g <- simplify(g‬‬ ‫دس ایي قغوت اثتذا آسایؼ قشاس گیشی گشٍُب ّ یربلُرب سا دس سعرن هؾرخـ هریکٌرین‪ .‬آسایؾری کرَ ثرَ عٌرْاى‬ ‫پیؼ فشك دس ایي کذ تٌظین ؽذٍ‪ ،‬آسایؼ هعشّف ‪ Fruchterman-Reingold‬هیثبؽذ [‪ .]8‬ثشای سعرن اص تربثا ‪plot‬‬ ‫اعتفبدٍ ؽذٍاعت‪.‬‬ ‫‪## simple plot‬‬ ‫)‪igraph.par("plot.layout", layout.fruchterman.reingold‬‬ ‫)‪plot(g, vertex.size=3, vertex.label=NA, edge.arrow.size=0.6‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪23‬‬ ‫دس ایي ثخؼ اص ‪ tkplot‬ثشای عبخت یک ؽوبی تعبهلی اص گشاف ثِشٍ گشفتَ ؽذٍاعت‪.‬‬ ‫‪## interactive‬‬ ‫‪id <- tkplot(g, vertex.size=3, vertex.label=NA,‬‬ ‫)‪edge.arrow.size=0.6‬‬ ‫)‪coords <- tkplot.getcoords(id‬‬ ‫ؽکل صیش‪ً ،‬تیدَ اعکشیپت فْش سا ًوبیؼ هیدُذ‪.‬‬ ‫شکل ‪ .17‬گراف رضن شذٍ در هحیظ ‪tkplot‬‬ ‫دس ایي ثخؼ ؽوبی ‪ 1‬ثعذی گشاف فْش سا ثَ کوک ‪ rglplot‬سعن ؽذٍاعت‪.‬‬ ‫‪## 3D‬‬ ‫)(‪open3d‬‬ ‫‪rglplot(g, vertex.size=3, vertex.label=NA,‬‬ ‫)‪edge.arrow.size=0.6‬‬ ‫دس کذ صیش سعن گشاف ثبال ثب آسایؼ کبهبدا‪-‬کبّای اًدبم ؽذٍاعت [‪ .]9‬تْخَ کٌیذ کَ ‪ dim=3‬عرَثعرذی ثرْدى‬ ‫آسایؼ گشاف سا ًؾبى هیدُذ‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ 23 ## A bit better 3D coords <- layout.kamada.kawai(g, dim=3) open3d() rglplot(g, vertex.size=3, vertex.label=NA, edge.arrow.size=0.6, layout=coords) rglplot ‫ گراف ضَ بؼذی رضن شذٍ با‬.18 ‫شکل‬ ‫ گرٍُا ّ یالُا‬،‫ دضترضی ّ تغییر صفات گراف‬6-3 .‫ گشٍُب ّ یبلُب ُش کذام هیتْاًٌذ ففبت خذاگبًَای داؽتَثبؽٌذ کَ ّیژگیُبی آىُرب سا هؾرخـ ًوبیٌرذ‬،‫گشاف‬ .‫ ثبصیبثی ًوْدین اعتفبدٍ هیکٌین‬2-1 ‫دس ایي قغوت اص هدوْعَدادٍ قضبیی کَ آى سا دس ثخؼ‬ ## Load the jurisdiction network load("judicial.Rdata.gz") ## If we don't have it then create it again if (!exists("jg")) { source("http://cneurocvs.rmki.kfki.hu/igraph/plus.R") vertices <- read.csv(" http://cneurocvs.rmki.kfki.hu/igraph/judicial.csv") edges <- read.table(" http://cneurocvs.rmki.kfki.hu/igraph/allcites.txt") jg <- graph.data.frame(edges, vertices=vertices, dir=TRUE) } :‫هعوْال تْاثا صیش ثشای هقذاسدُی ّ پشطّخْ اص ایي ففبت اعتفبدٍ هیگشدد‬ set.graph.attribute, get.graph.attribute, list.graph.attributes, set.vertex.attribute, get.vertex.attribute, list.vertex.attributes, set.edge.attribute, get.edge.attribute, list.edge.attributes ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫هذلغبصی گشاف‬ ‫‪22‬‬ ‫تْاثا فْش‪ ،‬عولیبت هقذاسدُی‪ ،‬ثبصیبثی ّ اساهَ لیغت ففبت سا اًدبم هیدٌُذ‪ .‬الجتَ ساٍ عبدٍتش دعتشعری اعرتفبدٍ‬ ‫اص ‪ $‬دس خلْی هتغیشُبعت‪ .‬دس کذ صیش چگًْگی دعتشعی ثخؾی اص ففبت پؾت عش ُن ًؾبى دادٍؽذٍ اعت‪.‬‬ ‫?‪## What do we have‬‬ ‫)‪summary(jg‬‬ ‫]‪V(jg)$year[1:100‬‬ ‫]‪V(jg)$parties[1:10‬‬ ‫پشط ّخْ سّی ففبت ًیض هؾبثَ دعتْس فْش ّ ثذّى ًیبص ثَ زلقَ اًدبمپزیش اعت‪ .‬ثب تْخَ ثرَ ‪ Index‬ؽرذى ایري‬ ‫ففبت ًتبیح ثَ عشعت هسبعجَ هیگشدد‪.‬‬ ‫‪## Select vertices based on attributes‬‬ ‫] ‪V(jg) [ year >= 1990‬‬ ‫] ‪V(jg) [ overruled!=0‬‬ ‫اعکشیپت صیش یک عولیبت پیچیذٍ سا سّی ففت عبل دس گشٍُب اًدبم هریدُرذ‪ .‬ایري کرذ هؾربثَ ‪ Group by‬دس‬ ‫‪ SQL‬عول هیکٌذ ّ هیبًگیي دسخَ گشٍُب سا دس گشٍُبی ُش عبل هسبعجَ هیًوبیذ‪.‬‬ ‫‪## Group network measures based on attributes‬‬ ‫‪deg.per.year <- tapply(degree(jg, mode="out"), V(jg)$year,‬‬ ‫)‪mean‬‬ ‫‪## Plot it‬‬ ‫) ‪plot( names(deg.per.year), deg.per.year‬‬ ‫ُوبىگًَْ کَ ًوْداس صیش ًؾبى هیدُذ سًّذ هیبًگیي دسخَ ًقبط ثَ هشّس صهبى دس زبل صیبد ؽذى اعت‪ .‬ایي ثذاى‬ ‫هعٌبعت کَ اعتٌبد ثَ پشًّذٍُبی قضبیی دس زبل صیبد ؽذى هیثبؽذ‪.‬‬ ‫شکل ‪ .19‬هیاًگیي درجَ ًقاط در گراف قضایی‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هذلغبصی گشاف‬ ‫‪21‬‬ ‫یک هثبل پیؾشفتَ تش اص ًسٍْ دعتشعی ثَ ففبت دس صیش آهذٍ اعت‪ .‬ثشای ایي هثبل اص یک گشاف تقبدفی ‪Erdos-‬‬ ‫‪ Renyi‬اعتفبدٍ هیکٌین [‪ .]33‬سًگ گشٍُب ثَ فْست تقبدفی قشهض یب عیبٍ دس ًظش گشفتَ هیؽْد‪.‬‬ ‫‪## A more advanced example‬‬ ‫)‪g <- erdos.renyi.game(100, 1/100‬‬ ‫‪V(g)$color <- sample( c("red", "black"),‬‬ ‫)‪vcount(g), rep=TRUE‬‬ ‫"‪E(g)$color <- "grey‬‬ ‫دس ایي هشزلَ گشٍُبی قشهض ّ عیبٍ سا اص یکذیگش خذا هیًوبیین‪.‬‬ ‫] "‪red <- V(g)[ color == "red‬‬ ‫] "‪bl <- V(g)[ color == "black‬‬ ‫زبل ثَ کوک یک پشطّخْی پیچیذٍ ثیي سًگ یبلُبیی کَ دّ عشف قشهض ّ دّ عشف آثی ُغرتٌذ‪ ،‬توربیض قبهرل‬ ‫هیؽْین‪ .‬کذ صیش ًؾبى هیدُذ کَ دس ٌُگبم سیختي یک هقذاس دس هتغیش‪ ،‬پشطّخْ هیتْاًذ دس عجبست عوت چپ ًیرض‬ ‫اعوبل گشدد‪.‬‬ ‫"‪E(g)[ red %--% red ]$color <- "red‬‬ ‫"‪E(g)[ bl %--% bl ]$color <- "black‬‬ ‫=‪plot(g, vertex.size=5, layout‬‬ ‫)‪layout.fruchterman.reingold‬‬ ‫ؽکل سعنؽذٍ گشاف ثبال ثَ فْست صیش خْاُذ ثْد‪.‬‬ ‫شکل ‪ .21‬یک گراف تصادفی کَ رًگ یالُای آى بر اضاش رًگ گرٍُا هتوایس گشتَاضت‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪24‬‬ ‫‪ 4‬تحلیل ضبکهاجتماعی‬ ‫ثشای ثیبى هدوْعَی سّاثظ پیچیذٍی هیبى افشاد دسعیغتنُبی اختوبعی ّ غیش آى اص ؽرجکَ اعرتفبدٍ هریؽرْد‪.‬‬ ‫هغبلعبتی ًظیش یبفتي افشاد تبثیشگزاس‪ ،‬عبختبسیبثی اختوبعبت دسّى ؽجکَ‪ ،‬پیؼ ثیٌی استجبط ثریي افرشاد ّ ‪ ...‬ثرَ کورک‬ ‫تسلیل ُویي ؽجکَُب فْست هیپزیشد‪ .‬دس اداهَ ثرَ ثشخری تکٌیرکُربی تسلیرل ؽرجکَاختوربعی دس ‪ igraph‬اؽربسٍ‬ ‫هیًوبیین‪.‬‬ ‫‪ 1-4‬هحاضبَ اًْاع تؼاریف هرکسیت گرٍ‬ ‫تبکٌْى هعیبسُبی هتفبّتی ثشای هسغبثَ هشکضیت یک گشٍ اساهَ ؽذٍاعت‪ .‬هشکضیت‪ ،‬اُویرت ًغرجی یرک گرشٍ دس‬ ‫گشاف سا ًؾبى هیدُذ [‪ .]33‬ثَ عٌْاى ًوًَْ هیضاى اُویت یک فشد دس ؽجکَاختوبعی یب هیضاى اُویت یک اتبش دس ثٌب‬ ‫ّ ‪ ...‬اص خولَ کبسثشدُبی ایي هعیبس هیثبؽذ‪ 4 .‬تب اص هؾِْستشیي تعبسیف هشکضیت ثَ ؽشذ صیش اعت‪:‬‬ ‫‪ :Degree centrality .3‬تعذاد گشٍُبی هدبّس ُش گشٍ (تعذاد ُوغبیَُب)‪.‬‬ ‫‪ :Betweenness centrality .2‬تعذاد کْتبٍتشیي هغیشُبیی کَ اص یک گشٍ عجْس هیًوبیذ‪.‬‬ ‫‪ :Closeness centrality .1‬هیبًگیي کْتبُتشیي هغیشُب ثیي ُش فشد ّ دیگش افشاد دس ؽجکَ‪.‬‬ ‫‪ :Eigenvector centrality .4‬ایي هعیبس یک اهتیبص ًغجی ثَ توبم گشٍُب ًغجت هیدُذ‪ ،‬هسبعرجَ ایري‬ ‫هعیبس ثش اعبط ایي افل اًدبم هیؽْد کَ استجبط ثب گشٍُبی ثب اهتیبص ثبال‪ً ،‬قرؼ ثیؾرتشی اص استجربط ثرب‬ ‫گشٍُبی ثب اهتیبص پبییي داسد‪ .‬الگْسیتن ‪ Google PageRank‬اص خولَ ایي سّػُب ثَ زغبة هیآیذ‪.‬‬ ‫الجتَ هعیبسُبی هشکضیتی کَ دس ‪ igraph‬پیبدٍعبصی ؽذٍاعت ثَ ایري ‪ 4‬سّػ خرتن ًؾرذٍ ّ سّػُربی دیگرشی‬ ‫چْى ‪ Transitivity ّ Burt's constraint‬سا ُن ؽبهل هیؽْد‪.‬‬ ‫ثشای ثشسعی ‪ 4‬هعیبس هشکضیت ثبال اثتذا یک گشاف هیعبصین ّ عپظ آى ثَ گشاف عبدٍ تجذیل هیًوبیین‪.‬‬ ‫‪g <- graph.formula(Andre----Beverly:Diane:Fernando:Carol,‬‬ ‫‪Beverly--Andre:Diane:Garth:Ed,‬‬ ‫‪Carol----Andre:Diane:Fernando,‬‬ ‫‪Diane----Andre:Carol:Fernando:Garth:Ed,‬‬ ‫‪Ed-------Beverly:Diane:Garth,‬‬ ‫‪Fernando-Carol:Andre:Diane:Garth:Heather,‬‬ ‫‪Garth----Ed:Beverly:Diane:Fernando:Heather,‬‬ ‫‪Heather--Fernando:Garth:Ike,‬‬ ‫)‪Ike------Heather:Jane‬‬ ‫)‪g <- simplify(g‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ 25 ‫دس اداهَ هْقعیت گشٍُب سا دس ٌُگبم سعن هؾخـ هیکٌین ّ ًبم گشٍُب سا ثشچغت آىُب دس ٌُگربم سعرن هجرذل‬ .‫ زبل ؽکل اّلیَ گشاف آهبدٍ اعت ّ هیتْاًین آى سا سعن کٌین‬.‫هیعبصین‬ ## Hand-tuned coordinates coords <- c(5,5,119,256,119,256,120,340,478, 622,116,330,231,116,5,330,451,231,231,231) coords <- matrix(coords, nc=2) ## Labels the same as names V(g)$label <- V(g)$name g$layout <- coords # $ ## Take a look at it plot(g, asp=FALSE, vertex.label.color="blue", vertex.label.cex=1.5, vertex.label.font=2, vertex.size=20, vertex.color="white", vertex.frame.color="white", edge.color="black") ‫ دس صیش اثترذا ایري‬.‫دس اداهَ ُش کذام اص هعیبسُبی هشکضیت سا هسبعجَ هیکٌین ّ دس کٌبس ُش گشٍ ًوبیؼ هیدُین‬ .‫عولیبت ثب هعیبس دسخَ اًدبم ؽذٍاعت‬ ## Add degree centrality to labels V(g)$label <- paste(sep="\n", V(g)$name, degree(g)) .‫ ًوبیؼ دادٍ هیؽْد‬23 ‫ ؽکل‬،‫ثب سعن ایي گشاف ثب کذ صیش‬ ## And plot again plot(g, asp=FALSE, vertex.label.color="blue", vertex.label.cex=1.5, vertex.label.font=2, vertex.size=20, vertex.color="white", vertex.frame.color="white", edge.color="black") .‫ گرٍُای آى در کٌار ُر گرٍ ًْشتَ شذٍاضت‬Degree centrality َ‫ گرافی ک‬.21 ‫شکل‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪26‬‬ ‫عَ هعیبس دیگش هشکضیت ثَ کوک تْاثا ‪ evcent ّ closeness ،betweenness‬قبثل هسبعجَ اعرت‪ .‬فقرظ کربفی‬ ‫اعت دس کذ ثبال ثرَ خربی )‪ ، degree(g‬عجربستی چرْى )‪format(evcent(g)$vector, digits=1‬‬ ‫ّاسد کٌیذ‪ً .‬تبیح ثَ دعت آهذٍ ثشای ایي عَ هعیبس دس ؽکلُبی صیش ًوبیؼ دادٍ ؽذٍاعت‪.‬‬ ‫شکل ‪ .22‬هرکسیت ‪ Betweenness‬گرٍُای گراف‬ ‫شکل ‪ .23‬هرکسیت ‪ Closeness‬گرٍُای گراف‬ ‫شکل ‪ .24‬هرکسیت ‪ Eigenvector‬گرٍُای گراف‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪27‬‬ ‫‪ 2-4‬تحلیل یک گراف ًطبتا بسرگ‬ ‫دس ایي ثخؼ ثب ًسٍْ دسیبفت اعالعبت یک گشاف ًغجتب ثضسگ آؽٌبیی هریؽرْین‪ .‬ثرَ علرت ثرضسگ ثرْدى گرشاف‬ ‫اعتفبدٍ اص ثشخی اص دعتْسات (هثل سعن گشاف) ثغیبس صهبىثش اعت ّ ثعضب ثَ ثغتَ ؽذى ًشمافرضاس هریاًدبهرذ‪ .‬اص ایري‬ ‫گزؽتَ ثب سعن ایي گشاف ًیض دس صهبى صیبد‪- ،‬ثَ علت ثضسگی‪ً -‬ویتْاى ثَ خْثی اعالعبت آى سا اعتخشاج ًورْد‪ .‬اص ایري‬ ‫سّ ثبیذ اص ثَ کبس ثشدى ایي دعتْسات ‪-‬ثَ خض دس هْاسد ضشّسی‪ -‬پشُیض ًوْد‪ .‬خذّل ‪ 3‬عشعت اخشای ُش یک اص تْاثرا سا‬ ‫ًؾبى هیدُذ ّ ثیبى هیکٌذ ُش کذام اص تْاثا ‪-‬دس زبلت هعوْل‪ -‬ثشای گشافی ثب چٌذ گرشٍ قبثلیرت هسبعرجَ دس صهربى‬ ‫هٌغقی سا داسا هیثبؽذ‪ .‬اغلت تْاثعی کَ دس خذّل ثب عٌرْاى "ثغریبس کٌرذ" سدٍثٌرذی ؽرذٍاًرذ‪ ،‬ثرَ خربعش پیچیرذگی‬ ‫هسبعجبتی الگْسیتن آىُب دس ایي سدٍ زضْس داسًذ‪.‬‬ ‫جذّل ‪ .1‬ضرػت تْابغ ‪igraph‬‬ ‫تْابععغ ضععریغ ‪creating graphs (most of the time)- structural‬‬ ‫‪modification(add/delete edges/vertices)- subgraph‬‬‫‪simplify‬‬‫‪graph.decompose‬‬‫‪degree‬‬‫(هیلیْىُا گرٍ) ‪clusters-‬‬ ‫‪graph.density- is.simple, is.loop, is.multiple‬‬‫‪articulation points and biconnected components‬‬‫‪ARPACK‬‬ ‫‪stuff:‬‬ ‫‪page.rank,‬‬ ‫‪hub.score,‬‬ ‫‪authority.score,‬‬ ‫‪evcent‬‬‫‪transitivity‬‬‫‪Burts‬‬ ‫‪constraint- dyad & triad census, graph motifs- k‬‬‫‪cores- MST- reciprocity- modularity- closeness‬‬ ‫‪and(edge) betweenness estimation- shortest paths‬‬ ‫‪from one source- generating Gn,p and Gn,m graphs‬‬‫‪generating PA graphs with various PA exponents‬‬‫‪topological sort‬‬ ‫‪closeness‬‬‫‪diameter‬‬‫‪betweenness‬‬‫‪all‬‬ ‫تْابعععغ کٌعععذ ‪pairs‬‬ ‫‪shortest paths, average path length- most layout‬‬ ‫‪generators‬‬ ‫(دٍُسار گرٍ)‬ ‫تْابغ بطیار کٌذ ‪cliques- cohesive blocks- edge/vertex connectivity-‬‬ ‫‪maximum ows and minimum cuts- bonpow- alpha‬‬ ‫‪centrality- (sub)graphisomorphism‬‬ ‫(صذ گرٍ)‬ ‫گشافی کَ ققذ داسین ثَ تسلیل آى ثپشداصین‪ُ ،‬وبى گشاف اعالعبت قضبیی اعت‪ .‬اثتذا ایري گرشاف سا اص سّی فبیرل‬ ‫رخیشٍؽذٍ‪ load ،‬هیکٌین‪ .‬ایي گشاف کَ ‪ 13288‬گرشٍ ّ ثریؼ اص ‪ُ236‬رضاس یربل داسد‪ ،‬یرک گرشاف خِرتداس‪ ،‬عربدٍ‬ ‫(غیشچٌذگبًَ) ّ ًبُوجٌذ هیثبؽذ‪.‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪28‬‬ ‫‪## Load the jurisdiction network‬‬ ‫)"‪load("judicial.Rdata.gz‬‬ ‫‪## Basic data‬‬ ‫)‪summary(jg‬‬ ‫?‪## Is it a simple graph‬‬ ‫)‪is.simple(jg‬‬ ‫?‪## Is it connected‬‬ ‫)‪is.connected(jg‬‬ ‫ثب دعتْس ‪ no.clusters‬تعذاد هْلفَُبی ُوجٌذ گشاف ثَ دعت هیآیذ‪ .‬ایري گرشاف ‪ 4883‬هْلفرَ ُوجٌرذ‬ ‫خذاگبًَ داسد‪ .‬اص ایي هیبى ‪ 4873‬گشٍ هٌفشد (ثذّى یبل)‪ 8 ،‬هْلفَ ثب اًذاصٍ ‪ ّ 1‬یک هْلفَ ثب اًذاصٍ ‪ 4‬داسین‪ .‬هْلفَ هِرن‬ ‫گشاف کَ ثضسگتشیي هْلفَ ُوجٌذ آى ًیض اعت‪ ،‬داسای ‪ 25189‬گشٍ هیثبؽذ‪.‬‬ ‫?‪## How many components‬‬ ‫)‪no.clusters(jg‬‬ ‫?‪## How big are these‬‬ ‫)‪table(clusters(jg)$csize‬‬ ‫یکی اص هِوتشیي تسلیلُب‪ ،‬تسلیل دسخَ گشٍُب دس گشاف هیثبؽذ‪ .‬تسلیل دسخَ ّسّدی ّ خشّخی گشٍُب ثب هسرْس‬ ‫‪ y‬لگبسیتوی ثَ فْست صیش هیثبؽذ‪ .‬ؽکل ‪ 25‬تْصیا دسخبت ّسّدی سا ًؾبى هیدُذ‪.‬‬ ‫‪## In-degree distribution‬‬ ‫)"‪plot(degree.distribution(jg, mode="in"), log="xy‬‬ ‫‪## Out-degree distribution‬‬ ‫)"‪plot(degree.distribution(jg, mode="out"), log="xy‬‬ ‫‪5e-02‬‬ ‫‪5e-03‬‬ ‫‪5e-04‬‬ ‫)"‪degree.distribution(jg, mode = "in‬‬ ‫‪5e-05‬‬ ‫‪200‬‬ ‫‪100‬‬ ‫‪50‬‬ ‫‪20‬‬ ‫‪10‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪Index‬‬ ‫شکل ‪ .25‬تْزیغ درجَُای ّرّدی گراف قضایی‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪29‬‬ ‫ثیؾتشیي دسخَ یک گشٍ (هدوْ ّسّدی ّ خشّخی) دس ایي گشاف ‪ 131‬اعت‪.‬‬ ‫‪## Largest in‬‬‫‪max(degree(jg,‬‬ ‫‪max(degree(jg,‬‬ ‫‪max(degree(jg,‬‬ ‫‪and out-degree, total degree‬‬ ‫))"‪mode="in‬‬ ‫))"‪mode="out‬‬ ‫))"‪mode="all‬‬ ‫چگبلی گشاف‪ً ،‬غجت تعذاد یبلُبی هْخْد ثَ تعذاد یبلُبی هوکي هیثبؽذ‪ .‬ایي هعیبس ثشای گشاف فرْش ثشاثرش ثرب‬ ‫‪ 3.333216‬اعت‪ .‬ایي ثذاى هعٌبعت کَ گشاف فْش ثغیبس پشاکٌذٍ هیثبؽذ‪.‬‬ ‫‪## Density‬‬ ‫)‪graph.density(jg‬‬ ‫تشاگزسی یک گشاف‪ ،‬ازتوبل ایي کَ ُوغبیَ ُبی یک گشٍ ثب یکذیگش هشتجظ ثبؽرٌذ سا هؾرخـ هریکٌرذ‪ .‬هقرذاس‬ ‫تشاگزسی سا یک ثبس ثشای گشاف اهْس قضبیی ّ یکثبس ثشای یک گشاف تقبدفی هسبعجَ هیکٌین‪ً .‬تبیح ثَ دعتآهرذٍ ثرَ‬ ‫تشتیت ‪ 3.333514 ّ 3.326‬هیؽْد‪ .‬تفبّت فبزؼ ایي هقبدیش‪ ،‬هعٌبداسی استجبعبت عجیعی سا ًؾبى هیدُذ‪.‬‬ ‫‪## Transitivity‬‬ ‫)‪transitivity(jg‬‬ ‫‪## Transitivity of a random graph of the same size‬‬ ‫)"‪g <- erdos.renyi.game(vcount(jg), ecount(jg), type="gnm‬‬ ‫)‪transitivity(g‬‬ ‫دعتْس ‪ ،dyad.census‬اًْا استجبعبت ثیي خفت گشٍُب سا عشؽوبسی ّ دس عَ گشٍّ دعتَثٌذی هیکٌذ‪:‬‬ ‫‪ :mut .3‬تعذاد گشٍُبی ثب استجبط دّعشفَ‪.‬‬ ‫‪ :asym .2‬تعذاد گشٍُبی ثب استجبط یکغشفَ‪.‬‬ ‫‪ :null .1‬تعذاد گشٍُبیی کَ ُیچ استجبعی ثب ُن ًذاسًذ‪.‬‬ ‫تبثا دیگش عشؽوبسی کٌٌذٍ‪ triad.census ،‬هیثبؽذ‪ .‬کَ تعذاد صیشگشافُبی ثرب عرَ یربل سا هریؽروبسد‪.‬‬ ‫ُوبًگًَْ کَ اًتظبس هیسّد‪ ،‬ثب تْخَ ثَ ّضعیت ثْدى یب ًیْدى یبلُبی خِتداس‪ ،‬ؽبًضدٍ تشکیت هختلف خْاُینداؽت‪.‬‬ ‫(ثَ ایي صیشگشافُب ‪ُ motifs‬ن اعالش هیؽْد‪ ).‬ؽوبسػ دس ایي ‪ 36‬دعتَ اًدبم هیؽْد‪.‬‬ ‫‪## Dyad census & Triad census‬‬ ‫)‪dyad.census(jg‬‬ ‫)‪## triad.census(jg‬‬ ‫هسبعجَ اهتیبص ‪ Authorities ّ Hubs‬کَ ‪ Kleinberg‬دس الگْسیتن ‪ HITS‬اساهَ داد‪ ،‬ثَ فْست صیرش اعرت‪ .‬ثرشای‬ ‫هسبعجَ ایي دّ اهتیبص اص ضشة ثشداسی ّ ثشداسُبی ّیژٍی هبتشیظ هدبّست اعتفبدٍ هیؽْد‬ ‫‪## Authority and Hub scores‬‬ ‫‪authority.score(jg)$vector‬‬ ‫)‪cor(authority.score(jg)$vector, V(jg)$auth‬‬ ‫‪hub.score(jg)$vector‬‬ ‫)‪cor(hub.score(jg)$vector, V(jg)$hub‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪13‬‬ ‫‪ 3-4‬ضاختاریابی اجتواع‬ ‫یکی اص هْضْعبت هغشذ دس تسلیل ؽجکَُبی اختوبعی‪ ،‬یبفتي عبختبس اختوبعبت هْخْد دس ؽجکَی اختوبعی‪ ،‬ثش‬ ‫اعبط ؽجبُتُبی افشاد دسّى ؽرجکَ هریثبؽرذ‪ .‬یرک ؽرجکَاختوربعی ٌُگربهی "عربختبس اختورب " ( ‪Community‬‬ ‫‪ )Structure‬داسد کَ ثَ فْست عجیعی ثَ گشٍُّبیی اص گشٍُب تقغین ؽذٍ ثبؽذ کَ دس دسّى گشٍُّب استجربط هترشاکن ّ‬ ‫هبثیي گشٍُّب استجبط ُتٌُک داؽتَ ثبؽذ‪ .‬ؽکل صیش یک ؽجکَاختوبعی ّ عبختبس اختوب دسّى آى سا ًوبیؼ دادٍاعت‪.‬‬ ‫شکل ‪" .26‬ضاختار اجتواع" در گراف یک شبکَاجتواػی‬ ‫یک عْال هِن دس عبختبسیبثی ایي اعت کَ عبختبس یبفتَؽذٍ تب چَ زذ ثِیٌرَ اعرت ًیرْهي‪-‬گیرشّاى دس عربل‬ ‫‪ 2334‬هعیبس هبژّالسیتی ‪ Q‬سا ثَ عٌْاى ؽشط اًتِبیی الگْسیتن اساهَ داد [‪ .]32‬اهرب ایري هعیربس ثرَ عرشعت ثرَ یکری اص‬ ‫اخضای افلی دعتَی خذیذی اص سّػُبی عبختبسیبثی هجذل گؾت‪ .‬تبکٌْى هعیبسُبی هختلفی ثشای هربژّالسیتی اساهرَ‬ ‫ؽذٍاعت‪ .‬هب دس ایي آهْصػ اص هعیبس پبیَ هبژّالسیتی کَ تْعظ ًیْهي اساهَ ؽذ اعتفبدٍ هیًوبیین (عجبست سیبضی ‪.)3‬‬ ‫(‪)3‬‬ ‫∑‬ ‫دس آصهبیؼ اّل ققذ داسین اًذاصٍ هبژّالسیتی سا دس چٌذ گشاف ثشسعی ًوبیین‪ .‬ثشای ایي هٌظْس اثترذا گشافری ثرب دّ‬ ‫قغوت خذاگبًَ ایدبد هیًوبیین‪.‬‬ ‫‪## The concept of modularity‬‬ ‫)‪g <- graph.full(5) %du% graph.full(5‬‬ ‫‪g$layout <- layout.fruchterman.reingold‬‬ ‫)‪plot(g‬‬ ‫‪V(g)$color <- 2‬‬ ‫‪V(g)[0:4]$color <- 1‬‬ ‫)‪plot(g‬‬ ‫گشاف ایدبد ؽذٍ یک گشاف هبژّالس اعت‪ .‬هقذاس هبژّالسیتی آى ثشاثش ثب ‪ 3.5‬هیثبؽذ‪.‬‬ ‫‪## This graph is modular‬‬ ‫)‪modularity(g, membership=V(g)$color-1‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪13‬‬ ‫ایي دسزبلی اعت کَ اگش کل گشاف سا یک اختوب دس ًظش ثگیشین‪ ،‬هقذاس هبژّالسیتی ثشاثش ثب ففش هیؽْد‪.‬‬ ‫‪## If we have everyone in the same group,‬‬ ‫‪## that is not modular‬‬ ‫‪V(g)$color <- 1‬‬ ‫)‪modularity(g, membership=V(g)$color-1‬‬ ‫چٌبچَ اختوب ُب سا ثَ فْست تقبدفی اختقبؿ دُین‪ ،‬ایي هقذاس هٌفی هیؽْد‪.‬‬ ‫‪## If we assign the vertices randomly to two‬‬ ‫‪## groups, that is not very modular, either‬‬ ‫)‪V(g)$color <- sample(1:2, vcount(g), rep=TRUE‬‬ ‫)‪plot(g‬‬ ‫)‪modularity(g, membership=V(g)$color-1‬‬ ‫ثشای آصهبیؼ ثعذی‪ ،‬گشاف کلْپ کبساتَ صاکبسی سا داًلْد هیکٌین‪ .‬اص آىخب کَ ایي گرشاف دس فشهرت ‪ pajek‬قرشاس‬ ‫داسد‪ ،‬ثبیذ آى سا ثَ فشهت ‪ igraph‬تجذیل ًوبیین‪ .‬اًدبم ایي کبس ثَ سازتی ثب اضبفَکرشدى یرک آسگْهربى ثرَ تربثا ّسّد‬ ‫گشاف اهکبىپزیش اعت‪.‬‬ ‫‪## Fast & greedy community detection‬‬ ‫(‪karate <- read.graph‬‬ ‫)"‪"cneurocvs.rmki.kfki.hu/igraph/karate.net",format="pajek‬‬ ‫)‪karate <- simplify(karate‬‬ ‫الگْسیتن ‪ fastgreedy‬کَ یک الگْسیتن ثش هجٌبی هبژّالسیتی اعت [‪ ،]31‬سّی ایي گشاف اعوبل هریکٌرین‪ .‬ؽریٍْ‬ ‫کبس ایي الگْسیتن ثذیي فْست اعت کَ ُش گشٍ سا یک اختوب دس ًظش هیگیشد ّ عجق یرک سّػ زشیقربًَ ؽرشّ ثرَ‬ ‫ادغبم ایي اختوبعبت هیکٌذ‪ .‬دس ُش هشزلَ هبژّالسیتی گشاف اًذاصٍگیشی ّ رخیشٍ هیؽْد‪ ،‬تب ایي کَ توربم گرشٍُرب ثرَ‬ ‫یک اختوب اختقبؿ یبثٌذ‪ .‬پظ اص پبیبى ایي هشزلَ خبیی کَ الگْسیتن ثَ ثیؾتشیي هبژّالسیتی سعیذٍثرْد‪ ،‬ثرَ عٌرْاى‬ ‫عبختبساختوب دس ًظش هیگیشین‪ .‬ثب اخشای ایي الگْسیتن‪ ،‬ثیؾتشیي هبژّالسیتی هشازل ثَ ‪ 3.18‬هیسعذ‪.‬‬ ‫) )‪system.time( fc <- fastgreedy.community(karate‬‬ ‫‪fc$modularity‬‬ ‫)‪max(fc$modularity‬‬ ‫)‪which.max(fc$modularity‬‬ ‫آسایَ عضْیت ثیؾتشیي هبژّالسیتی ثَ فْست صیش اعتخشاج هیگشدد‪.‬‬ ‫‪memb <- community.to.membership(karate, fc$merges,‬‬ ‫))‪which.max(fc$modularity‬‬ ‫‪memb‬‬ ‫ایي گشاف سا سعن هیکٌین‪ .‬ؽکل ‪ً 27‬تبیح ثَ دعتآهذٍ سا ًؾبى هیدُذ‪.‬‬ ‫)‪lay <- layout.kamada.kawai(karate‬‬ ‫‪plot(karate, layout=lay, vertex.size=5, vertex.label=NA,‬‬ ‫)‪vertex.color=memb$membership+1, asp=FALSE‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪12‬‬ ‫شکل ‪ .27‬اجتواػات بَ دضت آهذٍ با الگْریتن ‪ fastgreedy‬رّی هجوْػَ دادٍ کلْپ کاراتَ‬ ‫هشازل ثبال سا سّی الگْسیتن ‪ Spinglass‬اًدبم هیدُین [‪ً ّ ]34‬تبیح سا ثرب ُرن هقبیغرَ هریکٌرین‪ .‬هربژّالسیتی‬ ‫ًتیدَ ًِبیی ‪ 3.42‬هیثبؽذ کَ ثَ عْس قبثل هالزظَای افضایؼ یبفتَاعت‪ .‬الجتَ صهبى اخرشای الگرْسیتن پیؾریي کوترش‬ ‫ثْد‪.‬‬ ‫‪## Spinglass community detection‬‬ ‫))‪system.time(spc <- spinglass.community(karate, spins=20‬‬ ‫‪spc‬‬ ‫)(‪x11‬‬ ‫‪plot(karate, layout=lay, vertex.size=5, vertex.label=NA,‬‬ ‫)‪vertex.color=spc$membership+1, asp=FALSE‬‬ ‫عبختبس ثَ دعتآهذٍ ایي الگْسیتن‪ ،‬داسای چِبس اختوب اعت‪ .‬اعکشیپ فْش ًتبیح سا سعن ًیرض هریًوبیرذ (ؽرکل‬ ‫‪ .)28‬دعتْس )(‪ x11‬ثبعث هیؽْد سعن ایي گشاف دس پٌدشٍای خذاگبًَ فْست ثگیشد‪.‬‬ ‫شکل ‪ .28‬اجتواػات بَ دضت آهذٍ با الگْریتن ‪ Spinglass‬رّی هجوْػَ دادٍ کلْپ کاراتَ‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪11‬‬ ‫‪ 4-4‬بلْکُای چطبٌذٍ‬ ‫چغجٌذگیعبختبسی (‪ ،)Structural cohesion‬کوتشیي تعذاد گشٍُبیی اص ؽجکَاختوبعی اعت کَ ثبیرذ آىُرب سا‬ ‫ززف کٌین تب زذاقل دّگشٍ کَ تبکٌْى ثَ ُن هتقرل ثْدًرذ‪ ،‬اص یکرذیگش خرذا ؽرًْذ [‪ .]35‬دس ایري آصهربیؼ عرعی‬ ‫هیکٌین‪ ،‬ثلْکُبیی اص گشٍ ُب کَ چغجٌذگی صیبدی داسًذ ّ زبهل ثیي ثلْکُب ُغتٌذ سا ثیبثین‪ .‬اثتذا گشافری کرَ ثبیرذ‬ ‫سّی آى آصهبیؼ اًدبم دُین سا هیعبصین ّ ثشچغت ُش گشٍ سا ثَ تشتیت ثَ فْست عذدی ؽوبسٍگزاسی هیًوبیین‪.‬‬ ‫‪## Load the graph‬‬ ‫‪cb <- graph( c(1,2,1,3,1,4,1,5,1,6,‬‬ ‫‪2,3,2,4,2,5,2,7,‬‬ ‫‪3,4,3,6,3,7,‬‬ ‫‪4,5,4,6,4,7,‬‬ ‫‪5,6,5,7,5,21,‬‬ ‫‪6,7,‬‬ ‫‪7,8,7,11,7,14,7,19,‬‬ ‫‪8,9,8,11,8,14,‬‬ ‫‪9,10,‬‬ ‫‪10,12,10,13,‬‬ ‫‪11,12,11,14,‬‬ ‫‪12,16, 13,16, 14,15, 15,16,‬‬ ‫‪17,18,17,19,17,20,‬‬ ‫‪18,20,18,21,‬‬ ‫‪19,20,19,22,19,23,‬‬ ‫‪20,21, 21,22,21,23,‬‬ ‫)‪22,23)-1, dir=FALSE‬‬ ‫))‪V(cb)$label <- seq(vcount(cb‬‬ ‫ثلْکثٌذی چغجٌذگی (‪ ،)Cohesive blocking‬یک سّػ ثشای هؾخـکشدى صیشهدوْعَُربی علغرلَهشاتجری‬ ‫گشٍُبی گشاف‪ ،‬ثش اعبط چغجٌذگیعبختبسی (یب اتقبل گشُی) اعت‪ .‬قجل اص تعشیف خْد ثلْکثٌرذی چغرجٌذگی الصم‬ ‫اعت‪ ،‬هفِْم دیگشی سا تعشیف ًوبین‪ .‬ثشای گرشاف ‪ ،G‬صیشهدوْعرَ ‪ S‬اص گرشٍُربی گرشاف‪maximally k-cohesive ،‬‬ ‫اعرت‪ ،‬اگرش هدوْعرَای ثضسگترش اص ‪ّ S‬خرْد ًذاؽرتَ ثبؽرذ کرَ ‪ S‬صیشهدوْعرَ آى ثرْدٍ ّ اتقربل گشُری ( ‪vertex‬‬ ‫‪ )connectivity‬آى ثیؾتش یب هغبّی ثب ‪ k‬ثبؽذ (ثَ عجبست دیگش ‪ S‬ثضسگتشیي ّ چغجٌذٍتشیي خض ثبؽرذ‪ .).‬ثرب تْخرَ ثرَ‬ ‫تعشیف فْش‪ ،‬ثلْکثٌذی چغجٌذگی‪ ،‬فشآیٌذی ثبصگؾتی اعت کَ عی آى‪ ،‬صیشهدوْعَُربی ‪maximally l-cohesive‬‬ ‫یررک هدوْعررَ ‪ k-cohesive‬ثضسگتررش سا هررییرربثین (‪ .)l > k‬عرربختبس علغررلَ هشاتجرری ُررن اص سّی ُورریي فشآیٌررذ‬ ‫(صیشهدوْعَُبی چغجٌذٍ تش) ثَ دعت هیآیذ‪.‬‬ ‫)‪blocks <- cohesive.blocks(cb‬‬ ‫‪blocks‬‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫تسلیل ؽجکَاختوبعی‬ ‫‪14‬‬ ‫ًتبیح ثلْک ثٌذی ثب اعکشیپ صیش ًوبیؼ دادٍ هیؽْد‪ .‬ؽکل ‪ 29‬عبختبس علغلَ هشاتجری ّ ثلرْکُربی هْخرْد سا‬ ‫ًؾبى هیدُذ‪.‬‬ ‫)‪summary(blocks‬‬ ‫‪blocks$blocks‬‬ ‫)‪lapply(blocks$blocks, "+", 1‬‬ ‫‪blocks$block.cohesion‬‬ ‫‪plot(blocks, layout=layout.kamada.kawai, vertex.label.cex=2,‬‬ ‫)"‪vertex.size=15, vertex.label.color="black‬‬ ‫‪18‬‬ ‫‪20‬‬ ‫‪22‬‬ ‫‪23‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪17‬‬ ‫‪21‬‬ ‫‪19‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪8‬‬ ‫‪6‬‬ ‫‪9‬‬ ‫‪11‬‬ ‫‪2‬‬ ‫‪10‬‬ ‫‪12‬‬ ‫‪14‬‬ ‫‪3‬‬ ‫‪13‬‬ ‫‪15‬‬ ‫‪16‬‬ ‫شکل ‪ .29‬ضاختار بلْکبٌذی چطبٌذگی بَ دضتآهذٍ‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬ ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هشاخا‬ 15 ‫ مراجع‬5 [1] G. Csárdi and T. Nepusz, “igraph Reference Manual,” URL: http://igraph. sourceforge. net/documentation. html (accessed April 20, 2010). [2] G. Csardi, “Large-scale network analysis,” 2008. [3] G. Csardi, “Package „igraph‟,” Aug. 2010. [4] Wikipedia contributors, “R_(programming_language),” Encyclopedia. Wikimedia Foundation, 23-Jul-2011. Wikipedia, The Free [5] L. Lam, An introduction to R. 2010. [6] RapidIVideos, An Introduction to the Rapidminer R Extension. YouTube.com , 2010. [7] A. L. Barabási and R. Albert, “Emergence of scaling in random networks,” Science, vol. 286, no. 5439, p. 509, 1999. [8] T. M. J. Fruchterman and E. M. Reingold, “Graph drawing by force-directed placement,” Software- Practice and Experience, vol. 21, no. 11, p. 1129–1164, 1991. [9] T. Kamada and S. Kawai, “An algorithm for drawing general undirected graphs,” Information processing letters, vol. 31, no. 1, p. 7–15, 1989. [10] P. Erdos and A. Renyi, “On random graphs,” Publicationes mathematicae, vol. 6, no. 290-297, p. 53–54, 1959. [11] Wikipedia contributors, “Centrality,” Wikipedia, The Free Encyclopedia. Wikimedia Foundation, 27-Jul-2011. [12] M. E. J. Newman and M. Girvan, “Finding and evaluating community structure in networks,” Physical review E, vol. 69, no. 2, p. 026113, 2004. [13] A. Clauset, M. E. J. Newman, and C. Moore, “Finding community structure in very large networks,” Physical review E, vol. 70, no. 6, p. 066111, 2004. [14] J. Reichardt and S. Bornholdt, “Statistical mechanics of community detection,” Physical Review E, vol. 74, no. 1, p. 016110, 2006. [15] J. Moody and D. R. White, “Structural Cohesion and Embeddedness: A Hierarchical Concept of Social Groups,” American Sociological Review, vol. 68, no. 1, pp. 103-127, Feb. 2003. ‫داًؾگبٍ فٌعتی اهیشکجیش‬ ‫هسغي سهیغی | داًؾکذٍ کبهپیْتش ّ فٌبّسیاعالعبت‬