هيكل بيانات الرسم البياني و Algorithms (مثال)

⚡ ملخص ذكي

تُعدّ بنية بيانات الرسم البياني مجموعة غير خطية من الرؤوس والحواف، حيث تربط كل حافة زوجًا من الرؤوس. تُستخدم الرسوم البيانية لنمذجة الشبكات الواقعية مثل الخرائط والروابط الاجتماعية وصفحات الويب، وتدعم العديد من الخوارزميات القوية.

  • 📐 بناء: الرسم البياني G = (V, E) يربط مجموعة من الرؤوس (العقد) بمجموعة من الحواف (الروابط) بينها.
  • 🔤 المصطلح: تشمل المصطلحات الرئيسية الرأس، والحافة، والدرجة، والدرجة الداخلية، والدرجة الخارجية، والحلقة الذاتية، والتجاور.
  • 🗂️ التمثيل: يتم تخزين الرسوم البيانية باستخدام مصفوفة مجاورة أو قائمة مجاورة، ولكل منهما مقايضات مختلفة في المساحة.
  • 🧭 الأنواع: تصنف الرسوم البيانية حسب بنيتها إلى: موجهة، وغير موجهة، وموزونة، ودورية، وغير دورية، وكاملة، وثنائية الأجزاء، وغيرها.
  • 🌐 التطبيقات: Google تعتمد خرائط التوجيه والشبكات الاجتماعية وتصنيف المواقع الإلكترونية والاعتماد على الموارد جميعها على الرسوم البيانية.

هيكل بيانات الرسم البياني و Algorithms

ما هو الرسم البياني في بنية البيانات؟

الرسم البياني هو بنية بيانات غير خطية تتكون من رؤوس وحواف، حيث تحتوي الرؤوس على المعلومات أو البيانات، وتعمل الحواف كرابط بين زوج من الرؤوس.

يُستخدم هذا النظام لحلّ مشاكل واقعية، مثل إيجاد أفضل مسار للوصول إلى الوجهة المطلوبة، وتحديد مسار الاتصالات وشبكات التواصل الاجتماعي. يُعتبر المستخدمون بمثابة عقدة في الرسم البياني، والأسلاك هي الحواف التي تربطهم.

إذا تم تمثيل الحواف كـ E والرءوس كـ V، فيمكن كتابة الرسم البياني G كمجموعة من القمم والحواف، مثل G (V, E).

مثال على الرسم البياني في بنية البيانات

إليك مثال بسيط على بنية بيانات الرسم البياني:

مثال على الرسم البياني في بنية البيانات

هو رسم بياني بسيط غير موجه (أحد أنواع الرسوم البيانية). مجموعة الرؤوس هنا هي: {أ، ب، ج، د، هـ، و}. يشكل كل رأسين حافة. ​​على سبيل المثال، يرتبط الرأسان أ و ب بحافة. ​​بينما لا يرتبط الرأسان أ و و بأي حافة.

مصطلحات الرسم البياني في بنية البيانات

فيما يلي بعض المصطلحات المهمة المستخدمة في بنية بيانات الرسم البياني:

مصطلحالوصف
قمة الرأسيُطلق على كل عنصر من عناصر البيانات اسم رأس أو عقدة. في الصورة أعلاه، A وB وC وD وE هي الرؤوس.
الحافة (القوس)تُسمى الروابط التي تربط بين عقدتين أو رأسين بالحافة (القوس). ولها طرفان ويتم تمثيلها على النحو التالي: (الرأس البادئ، الرأس النهائي).
الحافة غير الموجهةإنها حافة ثنائية الاتجاه.
الحافة الموجهةإنها حافة أحادية الاتجاه.
الحافة المرجحةحافة ذات قيمة.
الدرجة العلميةفي الرسم البياني، يُطلق على عدد الحواف المتصلة برأس ما اسم الدرجة.
داخل درجةإجمالي عدد الحواف الواردة المتصلة بالقمة.
درجة خارجيةإجمالي عدد الحواف الصادرة المتصلة بالقمة.
حلقة ذاتيةتسمى الحافة بالحلقة الذاتية إذا تطابقت نقطتا النهاية.
الملاصقةيقال إن الرؤوس متجاورة إذا كان هناك ضلع متصل بينها.

أنواع الرسوم البيانية في بنية البيانات

وهنا قائمة الأكثر شيوعا أنواع الرسوم البيانية في بنية البيانات:

  • مخطط موجه
  • رسم بياني غير موجه
  • الرسم البياني المرجح
  • الرسم البياني ثنائي الاتجاه
  • رسم لانهائي
  • رسم بياني فارغ
  • الرسم البياني تافهة
  • رسم بياني متعدد
  • الرسم البياني الكامل
  • الرسم البياني المتصل
  • الرسم البياني الدوري
  • رسم بياني دوري موجه (DAG)
  • الرسم البياني للدورة
  • رسم بياني ثنائي
  • الرسم البياني أويلر
  • هاميلتون الرسم البياني

كيفية تمثيل الرسم البياني في بنية البيانات؟

يُخزَّن الرسم البياني عادةً في الذاكرة باستخدام أحد تمثيلين. ويؤثر هذا الاختيار على مقدار الذاكرة التي يستخدمها الرسم البياني وسرعة تنفيذ العمليات الشائعة.

  • مصفوفة التجاور: مصفوفة ثنائية الأبعاد V × V، حيث تكون قيمة الخلية [i][j] تساوي 1 (أو وزن الحافة) إذا كانت هناك حافة بين الرأس i والرأس j، و0 فيما عدا ذلك. تسمح هذه المصفوفة بالبحث عن الحواف في زمن ثابت O(1)، ولكنها تستخدم مساحة O(V²)، مما يجعلها الأنسب للرسوم البيانية الكثيفة.
  • قائمة الجوار: مصفوفة من القوائم حيث يخزن كل رأس قائمة برؤوسه المجاورة. تستخدم مساحة O(V + E) وهي فعالة للرسوم البيانية المتفرقة، ولهذا السبب تستخدمها معظم الرسوم البيانية في العالم الحقيقي.

يمكنك قراءة المزيد عن هذه المواضيع في قائمة التجاور وتمثيل المصفوفة للرسم البياني البرنامج التعليمي.

تطبيقات هيكل بيانات الرسم البياني

للرسم البياني استخدامات عديدة، وهناك الكثير من الخوارزميات التي تستخدمه. فيما يلي بعض تطبيقات الرسم البياني:

  • Google تستخدم الخرائط الرسوم البيانية لإيجاد تقاطع طريقين وحساب المسافة بين موقعين. على سبيل المثال، ديكسترا، لإيجاد أقصر مسافة بين موقع المصدر وموقع الوجهة.
  • يستخدم فيسبوك الرسوم البيانية للعثور على الأصدقاء المشتركين للمستخدمين. وتعتبر خوارزميته كل مستخدم بمثابة عقدة في الرسم البياني.
  • لتخصيص الموارد، يتم استخدام الرسم البياني الموجه غير الدوري (DAG). وهو يتحقق من تبعية الموارد.
  • استخدم Google تستخدم محركات البحث الرسوم البيانية لإنشاء ترتيب المواقع الإلكترونية.
  • خريطةping يستخدم الجهاز بنية بيانات الرسم البياني.
  • A راوتر ويستخدم بروتوكوله الرسم البياني لتعلم المسار إلى الوجهة.

الأسئلة الشائعة

تستفيد الشبكات العصبية البيانية من البيانات ذات البنية البيانية للكشف عن الاحتيال، وتقديم التوصيات، واكتشاف الأدوية. وتدعم الرسوم البيانية المعرفية إجابة الذكاء الاصطناعي على الأسئلة، بينما تُنمذج أطر التعلم العميق كل عملية حسابية على شكل رسم بياني للعمليات.

نعم. يمكن لمساعدي الذكاء الاصطناعي مثل GitHub Copilot إنشاء تطبيقات لخوارزميات البحث في العرض أولاً (BFS) والبحث في العمق أولاً (DFS) وخوارزمية ديكسترا والفرز الطوبولوجي من وصف بسيط. مع ذلك، يُنصح باختبار الحالات الشاذة مثل العقد غير المتصلة والحلقات والرسوم البيانية الفارغة قبل استخدام الكود.

الشجرة نوع خاص من الرسوم البيانية المتصلة التي لا تحتوي على دورات، ولها مسار واحد فقط بين أي عقدتين. أما الرسم البياني فهو أكثر عمومية: إذ يمكن أن يحتوي على دورات، وأجزاء منفصلة، ​​وحواف موجهة أو مرجحة.

الطريقتان الرئيسيتان لاجتياز الشبكة هما البحث بالعرض أولاً (BFS)، الذي يستكشف مستوى تلو الآخر باستخدام قائمة انتظار، والبحث بالعمق أولاً (DFS)، الذي يستكشف لأقصى عمق ممكن باستخدام مكدس أو استدعاء ذاتي قبل الرجوع للخلف.tracملك.

تلخيص هذه التدوينة بـ: