ماتریس همسایگی

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از ماتریس مجاورت)
پرش به: ناوبری، جستجو
نمونه‌ای از ماتریس همسایگی یک گراف برچسب‌دار. به عنوان مثال، در این گراف بین رأس ۱ و ۲ یک یال وجود دارد، بنا بر این درایه (۱،۲) ماتریس یک می‌باشد.
نمونه‌ای از ماتریس همسایگی یک گراف برچسب‌دار. به عنوان مثال، در این گراف در رأس ۶ یک طوقه وجود دارد بنابر این درایه (۶،۶) گراف یک می‌باشد.

در ریاضیات گسسته و علوم کامپیوتر، ماتریس همسایگی یک گراف برچسب‌دار (به انگلیسی: Adjacency matrix) ماتریسی است که حاوی اطلاعات مربوط به تعداد یال‌هایی بین رأس‌های مختلف گراف است می‌باشد. بصورت دقیقتر ماتریس همسایگی یک گراف متناهی (جهت‌دار یا غیرجهت‌دار) با رأس، یک ماتریس × می‌باشد درایهٔ آن برابر با تعداد یال‌هایی که دو رأس و را به هم متصل می‌کند می‌باشد (درایه قطری تعداد طوقه‌های رأس را نشان می‌دهد). پس در کل تعداد ۱های (۱هایی که روی قطر اصلی نیستند) ماتریس همسایگی دو برابر تعداد یال‌ها است.

برای هر گراف یک ماتریس همسایگی منحصر به فرد (یکتا) وجود دارد و هیچ ۲ ماتریسی یک ماتریس همسایگی ندارند. (در این مقاله موضوع اصلی غالباً گراف‌های غیر جهت دار اند، گراف‌های جهت نیز حالت و زیرمجموعه‌ای از گراف‌های غیرجهت دار اند و از آنها پیروی می‌کنند.)

اگر گراف مورد نظر، گرافی ساده و متناهی باشد، ماتریس همسایگی آن یک ماتریس (۰و۱) (دودویی، یعنی درایه‌های آن فقط ۰ و ۱ اند). اگر گراف غیرجهت دار هم باشد، ماتریس همسایگی آن متقارن خواهد بود و تمام درایه‌های قطر اصلی آن الزاماً صفر است.

قوانین کلی[ویرایش]

  • تمام درایه‌های ماتریس همسایگی یک گراف کامل به جز درایه‌های روی قطر اصلی ۱ است.
  • تمام درایه‌های ماتریس همسایگی یک گراف خالی صفر هستند.

ماتریس همسایگی گراف دو قسمتی[ویرایش]

ماتریس همسایگی A مربوط به یک گراف دو قسمتی است که دو بخش آن r و s رأس دارند.


B ماتریس حاصلضرب r و s است (r×s) و O ماتریس تمام صفر است. واضح است که منحصراً نشان دهندهٔ ماتریس‌های دوقسمتی است و معمولاً یه آن ماتریس همسایگی دوقسمتی می‌گویند. اگر (G = (U, V, E یک ماتریس ۲ قسمتی به صورت و باشد . ماتریس r×s که فقط درایه‌های ۰ و ۱ دارد (ماتریس B) ماتریس همسایگی گراف دوقسمتی نامیده می‌شود درصورتی که:

اگر و فقط اگر

.

اگر G یک گراف دوقسمتی چندگانه یا یک گراف وزن دار باشد، عناصر تعداد یال‌های بین دو رأس () یا وزن بین دو رأس را به ترتیب نشان می‌دهند.

ویژگی‌ها[ویرایش]

ماتریس همسایگی یک گراف سادهٔ غیرجهت دار متقارن است و بنابراین مجموعه‌ای کامل از مقدار ویژه‌های حقیقی و یک بردار ویژهٔ متعامد دارد. (basis) مجموعهٔ مقدار ویژه‌های یک گراف، طیف آن گراف را تشکیل می‌دهند. فرض کنید ۲ گراف (جهت دار یا غیر جهت دار) و با ماتریس همسایگی‌های و داده شده‌اند. و هم ریخت (متناظر/isomorphic) اند، اگر و فقط اگر وجود داشته باشد ماتریس جایگشت P به طوری که :

و در خصوصیات شبیه یه یکدیگرند، بنابراین، مینیمم، چندجمله‌ای، چند جمله‌ای ویژه، دترمینان و مجموع عناصر قطر داخلی آنها یکسان است. درنتیجه به عنوان گراف‌های متناظر یکدیگر در نظر گرفته می‌شوند.

با این حال ممکن است دو گراف مجموعهٔ مقدار ویژه‌های برابر داشته باشند ولی متناظر نباشند. اگر Aماتریس همسایگی گراف جهت دار یا غیر جهت دار G باشد، ماتریس تفسیر جالبی دارد: درایهٔ ردیف i ام و ستون j ام، تعداد مسیرهای به طول n بین دو رأس و را نشان می‌دهد. قطر اصلیِ ماتریس همسایگیِ هر گرافِ بدون طوقه‌ای، تماماً صفر است.

برای گراف (d)-منتظم (که d همچنین یک مقدار ویژهٔ A هم هست)، برای بردار ، گراف G همبند است اگر و تنها اگر تعدد dها بیش از ۱ نباشد. می‌توان نشان داد که اگر G گراف همبند دوبخشی باشد،–d نیز یک مقدار ویژهٔ آن است. تمام اینها نتایج نظریهٔ پرُن-فربنیوس (Perron–Frobenius theorem) است.

این جمله غلط است که: ماتریس I-A (که I ماتریس همانی n×n است) وارون پذیر هستند اگر و فقط اگر هیچ دور مستقیمی در گراف G نباشد. در این مورد، وارون این گراف یعنی چنین تفسیری دارد: درایهٔ ردیف i ام و ستون j ام، تعداد مسیرهای مستقیم از رأس i به رأس j را نشان می‌دهد (که اگر دور مستقیمی وجود نداشته باشد، همیشه این تعداد متناهی است.). این را می‌توان با استفاده از سری هندسی برای ماتریس‌ها فهمید :

که این متناظر است با اینکه تعداد مسیرها بین i و j برابر است با تعداد مسیرها به طول ۱ بعلاوهٔ تعداد مسیرها به طول ۲، بعلاوهٔ تعداد مسیرها به طول ۳ الی آخر.

ساختمان داده[ویرایش]

در زمینهٔ ساختمان داده، اصلی‌ترین چیزی که با ماتریس همسایگی رقابت می‌کند، لیست همسایگی است. چون هر درایه در ماتریس همسایگی تنها ۱ بیت نیاز دارد، پس می‌توانند به صورت فشرده‌ای تنها با اشغال کردنn۲/۸ فضای پیوسته، نشان داده شوند (که n تعداد رأس هاست.). علاوه بر جلوگیری از هدر رفتن فضا، این فشردگی باعث بهبود و نزدیک تر شدن مکانی ارجاع‌ها می‌شود. از طرف دیگر، در گراف‌های کم یال، لیست همسایگی برنده‌است، زیرا آنها برای نشان دادن یال‌هایی که اصلاً نبوده‌اند فضایی استفاده نمی‌کنند. با استفاده از یک پیاده سازی ساده با آرایه بر روی یک کامپیوتر ۳۲ بیتی، یک لیست همسایگی برای یک گراف غیر جهت دار حدود ۸e بایت حافظه نیاز دارد که e تعداد یال هاست.

نمایش گراف توسط ماتریس همسایگی[ویرایش]

در نمایش ماتریس همسایگی یک گراف (G=(V,E، فرض می‌کنیم رأس‌ها از ۱ تا |V| شماره گذاری شده‌اند و ماتریسی |V| × |V| به صورت (A=(aij اینگونه تعریف شده‌است:

اگر یال (i,j) در E باشد aij = ۱ در غیر این صورت aij = ۰.

شکل‌های ۱.b و ۲.b به ترتیب ماتریس‌های همسایگی گراف‌های بدون جهت و جهت دار ِ شکل‌های ۱.a و ۲.a هستند. ماتریس همسایگی یک گراف مستقل از تعداد یال‌ها، به(Ѳ(V۲ حافظه نیاز دارد. تقارن موجود در ماتریس شکل ۱.b را نسبت به قطر اصلی مشاهده می‌کنید. ترانهاده‌ی یک ماتریس (A=(aij را به صورت (AT=(aTij که در آن aTij = aji. از آنجا که در یک گراف بدون جهت، (u,v) و (v,u) هردو یک یال را نمایش می‌دهند، ترانهادهٔ ماتریس همسایگیِ A از یک گراف بدون جهت برابر با خودش است: A=AT. در برخی کاربردها نیاز می‌شود که فقط مقادیر روی قطر و بالای آن را ذخیره کنیم که در نتیجه میزان حافظهٔ مصرفی تقریباً نصف می‌شود.

با آنکه نمایش لیست همسایگی یک گراف، به اندازهٔ ماتریس همسایگی آن کارآست، سهولت ماتریس همسایگی ممکن است آن را در مواقعی که گراف‌ها خیلی کوچک نیستند، قابل ترجیح کند. به علاوه، اگر گراف وزن دار نباشد، برتری مضاعفی در ذخیره سازی برای ماتریس همسایگی وجود دارد. به جای استفاده از یک واحد حافظه برای هر درایهٔ ماتریس، فقط از ۱ بیت استفاده می‌کند.

منابع[ویرایش]

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (۲۰۰۱), Introduction to Algorithms, second edition. MIT Press and McGraw-Hill. ISBN ۰-۲۶۲-۰۳۲۹۳-۷. Section ۲۲٫۱: Representations of graphs, pp. ۵۲۷–۵۳۱.
  • Chris Godsil and Gordon Royle (۲۰۰۱), Algebraic Graph Theory. New York: Springer-Verlag. ISBN 0-387-95241-1