خوارزمية سايدل
خوارزمية سايدل هي خوارزمية صممها رايموند سايدل عام 1992 لحل مشكلة أقصر مسار بين جميع الأزواج في الرسوم البيانية غير الموجهة وغير الموزونة والمتصلة. [ 1 ] وهي تحل المشكلة فيالوقت المتوقع لرسم بياني معالرؤوس، حيثهو الأس في التعقيدلضرب المصفوفات . إذا اقتصر البحث على المسافات بين كل زوج من الرؤوس، فيمكن تحقيق نفس الحد الزمني في أسوأ الحالات. على الرغم من أن الخوارزمية مصممة للرسوم البيانية المتصلة، إلا أنه يمكن تطبيقها بشكل فردي على كل مكون متصل من الرسم البياني بنفس وقت التشغيل الإجمالي. هناك استثناء لوقت التشغيل المتوقع المذكور أعلاه لحساب المسارات: إذايصبح وقت التشغيل المتوقع.
تفاصيل التنفيذ
جوهر الخوارزمية هو إجراء يحسب طول أقصر المسارات بين أي زوج من الرؤوس. في أسوأ الحالات، يمكن القيام بذلك فيبعد حساب الأطوال، يمكن إعادة بناء المسارات باستخدام خوارزمية لاس فيغاس التي يُتوقع أن يكون وقت تشغيلها هولول.
حساب أطوال أقصر المسارات
يفترض كود بايثون أدناه أن الرسم البياني المدخل مُعطى على شكل-مصفوفة التجاورمع وجود أصفار على القطر الرئيسي. تُعرّف هذه الدالة APD التي تُرجع مصفوفة ذات عناصربحيثيمثل طول أقصر مسار بين الرؤوسويمكن أن تكون فئة المصفوفة المستخدمة أي تطبيق لفئة المصفوفة يدعم عوامل الضرب والأس والفهرسة (على سبيل المثال numpy.matrix ).
دالة apd ( A , n : int ): """حساب أطوال أقصر المسارات.""" إذا كان كل ( A [ i ][ j ] لـ i في النطاق ( n ) لـ j في النطاق ( n ) إذا كان i != j ): إرجاع A Z = A ** 2 B = matrix ( [ [ 1 إذا كان i != j و ( A [ i ][ j ] == 1 أو Z [ i ][ j ] > 0 ) وإلا 0 لـ j في النطاق ( n )] لـ i في النطاق ( n ) ] ) T = apd ( B , n ) X = T * A degree = [ sum ( A [ i ][ j ] لـ j في النطاق ( n )) لـ i في النطاق ( n )] D = matrix ( [ [ 2 * T [ i ][ j ] إذا كان X [ i ][ j ] >= T [ i ][ j ] * degree [ j ] وإلا 2 * T [ i ][ j ] - 1 لـ j في النطاق ( n ) ] لـ i في النطاق ( ن ) ] ) إرجاع Dتختبر الحالة الأساسية ما إذا كانت مصفوفة التجاور المدخلة تصف رسمًا بيانيًا كاملاً ، وفي هذه الحالة يكون طول جميع أقصر المسارات هو.
رسوم بيانية بأوزان من أكوان محدودة
خوارزميات للرسوم البيانية غير الموجهة والموجهة ذات الأوزان من مجموعة محدودةتوجد أيضًا خوارزمية أخرى. أفضل خوارزمية معروفة للحالة الموجهة هي تلك التي تعمل في وقت محدد.بواسطة زويك عام ١٩٩٨. [ ٢ ] تستخدم هذه الخوارزمية ضرب المصفوفات المستطيلة بدلاً من ضرب المصفوفات المربعة . يمكن الحصول على حدود عليا أفضل باستخدام أفضل خوارزمية متاحة لضرب المصفوفات المستطيلة بدلاً من تحقيق الضرب المستطيل عبر عمليات ضرب متعددة للمصفوفات المربعة. أفضل خوارزمية معروفة للحالة غير الموجهة هي في وقتبواسطة شوشان وزويك في عام 1999. [ 3 ] كان التنفيذ الأصلي لهذه الخوارزمية خاطئًا وتم تصحيحه بواسطة إيريناكيس وويليامسون وسوبراماني في عام 2016. [ 4 ]
ملحوظات
- ↑ سيدل، ر. (1995). "حول مسألة أقصر مسار بين جميع الأزواج في الرسوم البيانية غير الموجهة وغير الموزونة" . مجلة علوم الحاسوب والنظم . 51 (3): 400-403 . doi : 10.1006/jcss.1995.1078 .
- ↑ زويك، يو. (1 نوفمبر 1998). "أقصر المسارات بين جميع الأزواج في الرسوم البيانية الموجهة الموزونة - خوارزميات دقيقة وشبه دقيقة". وقائع الندوة السنوية التاسعة والثلاثين حول أسس علوم الحاسوب (رقم التصنيف 98CB36280) . الصفحات 310-319 . doi : 10.1109/SFCS.1998.743464 . ISBN 0-8186-9172-7. S2CID 10096418 – عبر IEEE Xplore.
- ↑ شوشان، أ.؛ زويك، يو. (15 فبراير 1999). "أقصر المسارات بين جميع الأزواج في الرسوم البيانية غير الموجهة ذات الأوزان الصحيحة". الندوة السنوية الأربعون حول أسس علوم الحاسوب (رقم التصنيف 99CB37039) . الصفحات 605-614 . doi : 10.1109/SFFCS.1999.814635 . ISBN 0-7695-0409-4. S2CID 2377466 – عبر IEEE Xplore.
- ↑ إيريناكيس، بافلوس؛ ويليامسون، ماثيو؛ سوبراماني، ك. (28 مارس 2016). "حول خوارزمية شوشان-زويك لمسألة أقصر مسار بين جميع الأزواج". arXiv : 1603.08627 [ cs.DS ].
- خوارزميات الرسوم البيانية
- مسائل زمنية متعددة الحدود
- المشكلات الحسابية في نظرية الرسوم البيانية
- مسافة الرسم البياني
