آموزش نمایش گراف در پایتون

CSGraph مخفف عبارت Compressed Sparse Graph است و بر الگوریتم‌های سریع گراف که بر پایه نمایش ماتریس خلوت ساخته می‌شوند تمرکز دارد.

آموزش نمایش گراف در پایتون

برای شروع، ابتدا مفهوم گراف خلوت و کاربرد آن در نمایش گراف ها را بررسی می‌کنیم.

گراف خلوت چیست؟

گراف مجموعه‌ای از گره‌ها است که یال‌ها آن‌ها را به یکدیگر متصل می‌کنند و می‌تواند تقریباً هر نوع رابطه یا ساختاری را نمایش دهد؛ برای مثال:

  • در شبکه‌های اجتماعی، هر گره یک فرد است و با آشنایان خود ارتباط دارد.

  • در تصاویر، هر گره یک پیکسل است و به پیکسل‌های همسایه متصل می‌شود.

  • در یک فضای چندبعدی، هر گره به نزدیک‌ترین همسایه‌های خود وصل می‌شود.

یکی از روش‌های بسیار کارآمد برای نمایش داده‌های گراف، استفاده از ماتریس خلوت است. فرض کنید این ماتریس را G بنامیم. این ماتریس اندازه‌ای N × N دارد و مقدار G[i, j] وزن یال بین گره i و گره j را نشان می‌دهد. در یک گراف خلوت، بیشتر خانه‌های ماتریس صفر هستند؛ یعنی هر گره فقط با تعداد محدودی از گره‌های دیگر ارتباط دارد. این ویژگی در بسیاری از کاربردهای واقعی وجود دارد.

دلیل ایجاد زیرماژول Sparse Graph

توسعه‌دهندگان scikit-learn این زیرماژول را برای پشتیبانی از چند الگوریتم مهم پیاده‌سازی کردند، از جمله:

  • Isomap: الگوریتم یادگیری مانیفولد که کوتاه‌ترین مسیرها را در گراف محاسبه می‌کند.

  • خوشه‌بندی سلسله‌مراتبی (Hierarchical Clustering): روشی که بر پایه درخت پوشای کمینه عمل می‌کند.

  • تجزیه طیفی (Spectral Decomposition): روشی برای فرافکنی داده بر اساس لاپلاسین گراف خلوت.

فرض کنید یک گراف بدون جهت با سه گره داریم:

گراف بدون جهت

  • گره 0 و گره 1 با یالی به وزن 2 متصل‌اند.

  • گره 0 و گره 2 با یالی به وزن 1 متصل‌اند.

در یک گراف بدون جهت، ماتریس نمایش آن متقارن است. نمایش‌های Dense، Masked و Sparse آن به شکل زیر است:

برنامه بالا خروجی زیر را تولید خواهد کرد:
گراف بدون جهت با استفاده از ماتریس متقارن

این گراف با قبلی یکسان است، فقط بین گره‌های 0 و 2 یک یال با وزن صفر وجود دارد. در این حالت، نمایش متراکم (Dense) ابهام ایجاد می‌کند؛ اگر مقدار صفر معنا داشته باشد، چگونه یالِ ناموجود را نشان بدهیم؟ برای حذف این ابهام، باید از نمایش ماسک‌شده (Masked) یا نمایش خلوت (Sparse) استفاده کنیم.

اکنون مثال زیر را بررسی می‌کنیم:

برنامه بالا خروجی زیر را تولید خواهد کرد:
در این مثال، مقدار np.inf به عنوان null_value عمل می‌کند تا مشخص شود بین دو گره یالی وجود ندارد. این روش باعث می‌شود ماتریس خلوت، داده‌ها را بدون ابهام نمایش دهد.
5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج آموزش پروژه محور لاراول و طراحی وب سایت کانون قلم چی
  • انتشار: ۲۱ مرداد ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید