خوارزمية روزو-تومبا

خوارزمية روزو-تومبا، أو خوارزمية RT [ 1 ] ، هي خوارزمية خطية الزمن لإيجاد جميع المتتاليات الفرعية غير المتداخلة والمتجاورة ذات أعلى قيمة في متتالية من الأعداد الحقيقية. [ 2 ] اقترح خوارزمية روزو-تومبا كلٌ من والتر ل. روزو ومارتن تومبا. [ 3 ] تُعد هذه الخوارزمية تحسينًا للخوارزميات التربيعية الزمن المعروفة سابقًا. [ 1 ] كما أن المتتالية الفرعية ذات أعلى قيمة من المجموعة التي تنتجها الخوارزمية هي حل لمسألة المصفوفة الفرعية القصوى .

تُستخدم خوارزمية Ruzzo–Tompa في المعلوماتية الحيوية ، [ 4 ] واستخراج البيانات من الويب ، [ 5 ] واسترجاع المعلومات . [ 6 ]

التطبيقات

المعلوماتية الحيوية

استُخدمت خوارزمية Ruzzo–Tompa في أدوات المعلوماتية الحيوية لدراسة البيانات البيولوجية. وتُعدّ مشكلة إيجاد التسلسلات الفرعية القصوى المنفصلة ذات أهمية عملية في تحليل الحمض النووي . وقد استُخدمت خوارزميات التسلسلات الفرعية القصوى في تحديد القطع العابرة للغشاء وتقييم تماثل التسلسل . [ 4 ]

تُستخدم هذه الخوارزمية في محاذاة التسلسلات ، وهي طريقة لتحديد تسلسلات الحمض النووي (DNA) أو الحمض النووي الريبوزي (RNA ) أو البروتينات المتشابهة. [ 7 ] يُحسّن مراعاة ترتيب أزواج التسلسلات الفرعية ذات الدرجات العالية في تسلسلين من دقة محاذاة التسلسلات. ويعود ذلك إلى أن النموذج البيولوجي يُشير إلى أن أزواج التسلسلات الفرعية ذات الدرجات العالية تنشأ من عمليات إدخال أو حذف ضمن منطقة متطابقة. ويؤدي اشتراط ترتيب ثابت لأزواج التسلسلات الفرعية ذات الدرجات العالية إلى زيادة دلالتها الإحصائية. [ 4 ]

استخراج البيانات من مواقع الويب

تُستخدم خوارزمية Ruzzo–Tompa في استخراج البيانات من صفحات الويب . وقد اقترح باستيرناك وروث طريقةً لاستخراج أجزاء نصية مهمة من مستندات HTML. تُقسّم صفحات الويب أولًا إلى رموز ، ثم تُحسب درجة كل رمز باستخدام مصنفات محلية على مستوى الرمز. [ 8 ] بعد ذلك، تُستخدم نسخة مُعدّلة من خوارزمية Ruzzo–Tompa للعثور على أعلى k سلسلة فرعية من الرموز قيمةً. تُستخدم هذه السلاسل الفرعية بعد ذلك كتنبؤات لأجزاء نصية مهمة في المقالة. [ 5 ]

استرجاع المعلومات

استُخدمت خوارزمية Ruzzo–Tompa في خوارزميات البحث لاسترجاع المعلومات . وقد اقترح ليانغ وآخرون طريقة لدمج البيانات لدمج نتائج البحث لعدة خوارزميات بحث في المدونات المصغرة. في طريقتهم، تُستخدم خوارزمية Ruzzo–Tompa لاكتشاف تدفقات المعلومات المفاجئة . [ 6 ]

تعريف المشكلة

تُعرَّف مشكلة إيجاد جميع المتتاليات الجزئية القصوى على النحو التالي: بالنظر إلى قائمة من الدرجات العددية الحقيقيةx1،x2،...،xن{\displaystyle x_{1},x_{2},\ldots ,x_{n}}ابحث عن قائمة المتتاليات الفرعية المتجاورة التي تعطي أعلى مجموع نقاط، حيث تمثل نقاط كل متتالية فرعيةSأنا،ج=أناكجxك{\displaystyle S_{i,j}=\sum _{i\leq k\leq j}x_{k}}يجب أن تكون التسلسلات الفرعية منفصلة (غير متداخلة) وأن يكون لها درجة موجبة. [ 9 ]

خوارزميات أخرى

توجد عدة طرق لحل مشكلة المتتاليات الفرعية ذات أعلى قيمة. إحدى الطرق الطبيعية هي استخدام خوارزميات موجودة ذات زمن خطي لإيجاد المتتالية الفرعية القصوى (انظر مشكلة المصفوفة الفرعية القصوى )، ثم إيجاد المتتاليات الفرعية القصوى على يسار ويمين المتتالية الفرعية القصوى بشكل متكرر. تحليل هذه الخوارزمية مشابه لتحليل خوارزمية الفرز السريع : قد تكون المتتالية الفرعية القصوى صغيرة مقارنةً ببقية المتتالية، مما يؤدي إلى زمن تشغيل قدرهيا(ن2){\displaystyle O(n^{2})}في أسوأ الأحوال.

الخوارزمية

يُظهر هذا الرسم المتحرك خوارزمية Ruzzo–Tompa وهي تعمل مع سلسلة إدخال مكونة من 11 عددًا صحيحًا، يُمثل كل منها بقطعة مستقيمة في الرسم البياني. تمثل القطع ذات الخطوط السميكة القطع القصوى التي تم العثور عليها حتى الآن. يُظهر الرسم المتحرك حالةأنا،R{\displaystyle I,R}ول{\displaystyle L}في كل خطوة. أسفل ذلك، يظهر الوضع الحالي للخوارزمية التي تتوافق مع الخطوات من 1 إلى 4 في قسم الخوارزمية من هذه الصفحة. يشير التظليل الأحمر إلى أن الخوارزمية تجد قيمة لـج{\displaystyle j}في الخطوتين 1 و3. إذا كانت قيمةج{\displaystyle j}يُحقق الشرط في تلك الخطوات التي يتحول فيها التمييز إلى اللون الأخضر. في نهاية الرسوم المتحركة، سيتم تمييز التسلسلات الفرعية القصوى بخط غامق وعرضها فيأنا{\displaystyle I}[ 1 ]

يتم تشغيل التطبيق القياسي لخوارزمية Ruzzo–Tompa فييا(ن){\displaystyle O(n)}يستغرق هذا الأسلوب وقتًا طويلاً ويستهلك مساحة O ( n )، حيث n هو طول قائمة الدرجات. يستخدم الخوارزمية البرمجة الديناميكية لبناء الحل النهائي تدريجيًا من خلال حل مجموعات فرعية أكبر تدريجيًا من المسألة. فيما يلي وصف الخوارزمية كما قدمه روزو وتومبا:

اقرأ الدرجات من اليسار إلى اليمين، واحتفظ بالمجموع التراكمي للدرجات المقروءة. احتفظ بقائمة مرتبة.أنا1،أنا2،...،أناج{\displaystyle I_{1},I_{2},\ldots ,I_{j}}من المتتاليات الفرعية المنفصلة. لكل متتالية فرعيةأناج{\displaystyle I_{j}}سجل المجموع التراكميلج{\displaystyle L_{j}}من جميع الدرجات حتى الدرجة الموجودة في أقصى اليسار، ولكن ليس بما فيهاأناج{\displaystyle I_{j}}والمجموعRج{\displaystyle R_{j}}حتى النتيجة الأخيرة على اليمين، بما في ذلكأناج{\displaystyle I_{j}}.
تكون القوائم فارغة في البداية. تُقرأ الدرجات من اليسار إلى اليمين وتُعالج على النحو التالي. لا تتطلب الدرجات غير الموجبة أي معالجة خاصة، لذا تُقرأ الدرجة التالية. تُدمج الدرجة الموجبة في سلسلة فرعية جديدة.أناك{\displaystyle I_{k}}بطول واحد، ثم يتم دمجها في القائمة من خلال العملية التالية:
  1. القائمةأنا{\displaystyle I}يتم البحث من اليمين إلى اليسار عن القيمة القصوى لـج{\displaystyle j}مُرضٍلج<لك{\displaystyle L_{j}<L_{k}}
  2. إذا لم يكن هناك مثل هذاج{\displaystyle j}ثم أضفأناك{\displaystyle I_{k}}إلى نهاية القائمة.
  3. إذا كان هناك مثل هذاج{\displaystyle j}، وRجRك{\displaystyle R_{j}\geq R_{k}}ثم أضفأناك{\displaystyle I_{k}}إلى نهاية القائمة.
  4. وإلا (أي، يوجد مثل هذا aj، ولكنRج<Rك{\displaystyle R_{j}<R_{k}}), قم بتمديد التسلسل الفرعيأناك{\displaystyle I_{k}}إلى اليسار لتشمل كل شيء حتى النتيجة الموجودة في أقصى اليسار.أناج{\displaystyle I_{j}}حذف التسلسلات الفرعيةأناج،أناج+1،...،أناك-1{\displaystyle I_{j},I_{j}+1,\ldots ,I_{k}-1}من القائمة، وألحقهاأناك{\displaystyle I_{k}}إلى نهاية القائمة. أعد النظر في التسلسل الفرعي الممتد حديثًا.أناك{\displaystyle I_{k}}(أعيد ترقيمها الآن)أناج{\displaystyle I_{j}}) كما في الخطوة 1.
بمجرد الوصول إلى نهاية المدخلات، يتم عرض جميع التسلسلات الفرعية المتبقية في القائمة.أنا{\displaystyle I}هي القصوى. [ 2 ]

الكود التالي المكتوب بلغة بايثون ينفذ خوارزمية Ruzzo–Tompa:

def ruzzo_tompa ( scores ):"""خوارزمية Ruzzo–Tompa."""k = 0المجموع = 0# تخصيص مصفوفات بحجم nI ، L ، R ، Lidx = [[ 0 ] * len ( scores ) for _ in range ( 4 )]for i , s in enumerate ( scores ):المجموع += sإذا كانت قيمة s أكبر من 0 :# تخزين I[k] حسب مؤشرات (البداية، النهاية) للدرجاتI [ k ] = ( i , i + 1 )Lidx [ k ] = iL [ k ] = الإجمالي - sR [ k ] = الإجماليبينما صحيح :maxj = Nonefor j in range ( k - 1 , - 1 , - 1 ):إذا كان L [ j ] < L [ k ]:maxj = jاستراحةإذا لم يكن maxj يساوي None وكان R [ maxj ] < R [ k ] :I [ maxj ] = ( Lidx [ maxj ], i + 1 )R [ maxj ] = المجموعk = maxjآخر :k += 1استراحة# الحصول على أقصى تسلسلات فرعية باستخدام الفهارس المخزنةreturn [ scores [ I [ l ][ 0 ] : I [ l ][ 1 ]] for l in range ( k )]

انظر أيضاً

مراجع

  1. سبوج، جون ل.؛ راميريز، ليوناردو مارينو؛ شيتلين، سيرجي ل. (2014). "البحث عن التكرارات، كمثال على استخدام خوارزمية روزو-تومبا المعممة لإيجاد التسلسلات الفرعية المثلى ذات الفجوات" . المجلة الدولية لبحوث وتطبيقات المعلوماتية الحيوية . 10 ( 4/5 ): 384-408 . doi : 10.1504/IJBRA.2014.062991 . ISSN 1744-5485 . PMC 4135518. PMID 24989859 .   
  2. 1 2 روزو، والتر ل.؛ مارتن، تومبا (1999). "خوارزمية زمنية خطية لإيجاد جميع المتتاليات الفرعية ذات أعلى درجات التقييم" . وقائع المؤتمر الدولي للأنظمة الذكية في البيولوجيا الجزيئية : 234-241 . ISBN 9781577350835PMID 10786306 
  3. "خوارزمية زمنية خطية لإيجاد جميع التسلسلات الفرعية ذات أعلى درجات" (PDF) .
  4. كارلين ، إس؛ ألتشول، إس إف (15 يونيو 1993). "تطبيقات وإحصاءات لقطاعات متعددة عالية الدرجات في التسلسلات الجزيئية" . وقائع الأكاديمية الوطنية للعلوم في الولايات المتحدة الأمريكية . 90 ( 12 ): 5873-5877 . Bibcode : 1993PNAS...90.5873K . doi : 10.1073 / pnas.90.12.5873 . PMC 46825. PMID 8390686 .  
  5. 1 2 باستيرناك، جيف؛ روث، دان (2009). "استخراج نص المقالات من الويب باستخدام أقصى تجزئة للتسلسلات الفرعية". وقائع المؤتمر الدولي الثامن عشر حول شبكة الويب العالمية . ص 971-980 . doi : 10.1145/1526709.1526840 . ISBN  9781605584874. S2CID 346124 . 
  6. 1 2 ليانغ، شانغ سونغ؛ رن، تشاوتشون. ويركامب، فوتر؛ ميج، إدغار. دي ريكي، مارتن (2014). “تجميع تصنيف الوقت المدرك لبحث المدونات الصغيرة”. وقائع المؤتمر الدولي الثالث والعشرون لمؤتمر ACM حول إدارة المعلومات والمعرفة . ص 989 – 998. CiteSeerX 10.1.1.681.6828 . دوى : 10.1145/2661829.2661905 . رقم ISBN   9781450325981. S2CID 14287901 . 
  7. سبوج، جون ل.؛ مارينو-راميريز، ليوناردو؛ شيتلين، سيرجي ل. (2012). "خوارزمية روزو-تومبا قادرة على إيجاد المسارات القصوى في الرسوم البيانية الموجهة الموزونة على شبكة أحادية البعد". المؤتمر الدولي الثاني لعام 2012 التابع لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) حول التطورات الحاسوبية في العلوم الحيوية والطبية (ICCABS) . الصفحات 1-6 . doi : 10.1109/ICCABS.2012.6182645 . ISBN  978-1-4673-1321-6. S2CID 14584619 . 
  8. "استخراج البيانات من مواقع الويب: كل ما تحتاج لمعرفته" . داتامام . 30 يوليو 2021. تاريخ الاسترجاع: 16 فبراير 2023 .
  9. سبوج، جون ل.؛ مارينو-راميريز، ليوناردو؛ شيتلين، سيرجي ل. (2012). "خوارزمية روزو-تومبا قادرة على إيجاد المسارات القصوى في الرسوم البيانية الموجهة الموزونة على شبكة أحادية البعد". المؤتمر الدولي الثاني لعام 2012 التابع لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) حول التطورات الحاسوبية في العلوم الحيوية والطبية (ICCABS) . الصفحات 1-6 . doi : 10.1109/ICCABS.2012.6182645 . ISBN  978-1-4673-1321-6. S2CID 14584619 . 

للمزيد من القراءة