أنواع وظائف التعقيد للخوارزميات. التعقيد الزمني للخوارزمية وقت التشغيل التقريبي يعتمد على مدى تعقيد الخوارزمية

تحديد مدى تعقيد الخوارزمية

يُطلق على تقدير دالة التعقيد التي تم الحصول عليها في التحليل المقارب اسم تعقيد الخوارزمية.

يجب أن يؤخذ في الاعتبار أن هناك عدة تقديرات لتعقيد الخوارزمية.

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

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

بالسعةالتعقيد - تقدير مقارب لعدد الكميات العددية الموجودة في وقت واحد عند تنفيذ خوارزمية على بيانات الإدخال ذات الطول ص.

الهيكليالتعقيد - إحدى سمات عدد هياكل التحكم في الخوارزمية وخصائص موقعها النسبي.

ذهنيالتعقيد - إحدى سمات إمكانية الوصول إلى الخوارزمية للفهم من قبل المتخصصين في مجالات التطبيق.

أنواع ورموز المقاربات

في التحليل المقارب للخوارزميات، من المعتاد استخدام تدوين التحليل المقارب الرياضي. في هذه الحالة، يتم أخذ ثلاثة تقديرات (مقاربات) لتعقيد الخوارزميات في الاعتبار، والتي يشار إليها على النحو التالي:

  • 1) /(ط) = يا ^ (ن))- تقدير دقيق مقارب لوظيفة التعقيد /(α)، أو التعقيد التشغيلي للخوارزمية؛
  • 2) /(ن) = 0(§(ن)) -الحد الأعلى الدقيق غير المقارب لوظيفة التعقيد /( ص);
  • 3) /(l) = ?2(#(l)) - الحد الأدنى الدقيق غير المقارب لدالة التعقيد /( ف).

بدلا من التسمية C1^(ن))في كثير من الأحيان يتم استخدام الحرف o(^(«)) الأبسط بالحرف "o" بخط مائل صغير.

دعونا نشرح دلالات الصيغ باستخدام مثال: إذا تمت كتابة /(i) = 0(^2(l))، فهذا يعني أن الوظيفة ز(ن)=ع2 (ن)هو تقدير دقيق مقارب لوظيفة التعقيد /(«). في جوهر الأمر، هناك تعريف ذو موقعين في شكل بيان:

إذا و(ن)= @(سجل 2())،

مو ز (ن)= سجل 2 (ل) - تقدير دقيق مقارب f(n).

لاحظ أن المضاعف الثابت لا يؤثر على ترتيب تعقيد الخوارزمية، وبالتالي يتم حذف قاعدة اللوغاريتم عند الإشارة إلى التعقيد اللوغاريتمي، ويكتبون ببساطة /(l) = @(1о§(l))، مما يعني ذلك اللوغاريتم له قاعدة تعسفية أكبر من واحد.

التعريفات الرسمية للمقاربات

تقدير دقيق مقارب لوظيفة التعقيدمع، مع 2, l 0، بحيث بالنسبة لـ l>l 0 الدالة /(l)، حتى العوامل الثابتة، لا تختلف عن الدالة ز(ل)، ثم الوظيفة ز (ن)يسمى تقديرًا دقيقًا مقاربًا للدالة f(n).

  • 3 ق ]، ق 2 هو، ج س > 0, مع 2> 0:
    • (3 ل 0 ه ك، ل 0 > 0: (/ل ه ك، ل > ل 0:0 ز(ن) /(ل) = 0(?(ل))،

حيث 9^، N هي مجموعات جميع الأعداد الحقيقية والطبيعية، على التوالي.

الحد الأعلى الحاد المقارب لوظيفة التعقيديتم تعريفه لفظيا على النحو التالي: إذا كانت هناك أرقام موجبة معو l 0 بحيث لا تنمو الدالة /(l) بشكل أسرع من الدالة بالنسبة إلى l>l 0 ز (ن)حتى العامل الثابت c، ثم الدالة ز (ن)يسمى الحد الأعلى الدقيق غير المقارب للوظيفة ا ف ب).

التمثيل الرسمي الأكثر دقة للتعريف هو:

  • 3 معه %s> 0:
    • (3 l 0 e X, l 0 > 0: (/l e K, l > l 0:0 s? #(l))) 0(g(n))

الحد الأدنى الضيق غير المقارب لوظيفة التعقيديتم تعريفه لفظيا على النحو التالي: إذا كانت هناك أرقام موجبة معو l 0 بحيث لا تنمو الدالة /(l) بالنسبة إلى l>l 0 بشكل أبطأ من الدالة ز (ن)حتى عامل ثابت مع،ثم تسمى الوظيفة؟(l) بالحد الأدنى الدقيق غير المقارب للوظيفة

التمثيل الرسمي الأكثر دقة للتعريف هو:

  • 3 معه 9 ^، مع > 0:
    • (3i0eX,i0>0: (/ieK,i > أنا 0: 0 س؟ ز (ن)

/(أنا) = 0.^(ن))

لاحظ ما يلي:

  • 1) يمكن تلبية عدم المساواة المحددة في التعريفات الرسمية للتقاربات، في الحالة العامة، ليس من خلال وظيفة واحدة، ولكن من خلال مجموعة معينة من الوظائف، غالبًا مع عدد لا يحصى من الأعضاء، وبالتالي فإن الإنشاءات س(ز(ن)), 0^(ن))و 0.^(ن))يرمز العديد من الوظائف، والتي تتم مقارنة وظيفة كثافة اليد العاملة المدروسة / (i) ؛ ونتيجة لذلك، في تدوين الخطوط المقاربة بالشكل /(i) = 0(?(i)), /(/0 = O(? max (l))), Dya) = ?2(? t1n (i) ) بدلاً من العلامة "= "سيكون من الأكثر عقلانية استخدام العلامة "e"؛
  • 2) التصاميم (د^(ن)), 0^(ن))و ?1^(ن)),المستخدمة كتسميات لكميات معينة ينبغي قراءتها وفقًا لذلك على النحو التالي: أي دالة متطابقة، لا تنمو بشكل أسرع ولا تنمو بشكل أبطأ ز (ن).

الصدفة والاختلاف في التقاربات

دعونا ننتبه إلى الحقيقة التالية: التقدير /(i) = 0(?(i)) يحدد التقديرين العلوي والسفلي لـ /(i)، حيث أن تعريفه يفترض صحة العلاقة مع ز (ن)

الخاصية التالية للخط المقارب واضحة تمامًا: إذا كان التقدير و(ن) = ©^(ن))موجود، ثم المساواة /( ص) = 0(^(i)) و /(i) = ?2(#(i)))، أي وتتزامن التقديرات العليا والدنيا لكثافة اليد العاملة مع بعضها البعض؛ إذا /(i) = 0(؟ max(i)) و و(ن) = C1^ طن متري(ن))، و ز ماكس (ن) фg م 1п (ط)، فلا توجد وظيفة ز (ن)،بحيث يكون /(i) = 0(?(i)).

من الممكن أن تتطابق التقديرات العليا والدنيا لكثافة اليد العاملة في الحالات التالية:

  • 1) دالة التعقيد لجميع قيم طول الإدخال هي دالة حتمية (غير عشوائية)، أي. عدد العمليات المنفذة لا يعتمد على القيم المحددة للبيانات المصدر؛ مثل، على سبيل المثال، هي وظائف اعتماد عدد عمليات الضرب والقسمة على عدد الكميات غير المعروفة في الخوارزمية لحل أنظمة المعادلات الجبرية الخطية بطريقة تحلل IZ؛
  • 2) دالة التعقيد هي دالة عشوائية، أي. يعتمد عدد العمليات المنفذة على تفاصيل البيانات المصدر و(أو) ترتيب استلامها، ويمكنك تحديد الوظائف / m|n (i)، / max (i)، التي تصف الحد الأدنى والحد الأقصى لعدد العمليات العمليات التي يتم إجراؤها بواسطة منفذ الخوارزمية لطول إدخال محدد، ومع ذلك، فإن كلتا هاتين الدالتين لهما نفس العناصر المهيمنة - على سبيل المثال، فهي متعددة الحدود من نفس الترتيب.

هناك ثلاث قواعد مهمة يجب وضعها في الاعتبار فيما يتعلق بتقديرات أمر التعقيد التشغيلي:

  • 1) العوامل الثابتة لا تهم في تحديد ترتيب التعقيد، أي. 0 (ك؟ ز(ن)) = 0(ز(«)) ;
  • 2) ترتيب تعقيد حاصل ضرب وظيفتين يساوي حاصل ضرب تعقيداتهما، لأن المساواة صحيحة:
  • 0(غل (ط) §2(i)) = 0 (?| (i)) 0 (#2(i)) ;
  • 3) ترتيب التعقيد لمجموع الدوال يساوي ترتيب المصطلحات السائدة، على سبيل المثال: 0(i e +ع2+ع)= 0(ط 5).

تستخدم القواعد المذكورة أعلاه رمز تقدير مقارب واحد فقط 0(")، ولكنها صالحة لجميع التقديرات المقاربة - ول 0( ) ، و &.{ ).

في مجموعة من الوظائف الأولية، يمكنك تحديد قائمة الهيمنة الوظيفية: إذا -متغير، أ، ب -هي ثوابت عددية، فإن العبارات التالية صحيحة: أنا تهيمن على أنا!؛ أنا! تهيمن أ"؛ أ" Zj يهيمن" إذا أ> ب أ صيهيمن صب، إذا أ> 1 لأي به 9؟ ; ص أأ/ يهيمن إذا أ> ب i يهيمن على السجل d(i) if أ > 1.

تقدير متوسط ​​كثافة اليد العاملة

في الممارسة العملية، إعادة في حالة الحسابات الحسابية، فإن تقييم f(i) للتوقع الرياضي لتعقيد M له أهمية كبيرة، لأنه في الغالبية العظمى من الحالات f(i) هي دالة عشوائية. ومع ذلك، في عملية الدراسات التجريبية للخوارزميات ذات العشوائية /(i)، تنشأ مشكلة إضافية - اختيار عدد الاختبارات لتقدير موثوق لـ M. التغلب على هذه المشكلة هو المهمة المركزية في . يعتمد الحل المقترح على استخدام توزيع بيتا لتقريب /(i). هذه تقنية بناءة وعالمية للغاية. ومع ذلك، في الظروف الحديثة، عندما يكون أداء الكمبيوتر مرتفعًا جدًا، فمن الممكن في كثير من الحالات استخدام طريقة أبسط لاختيار نطاق الاختبارات، استنادًا إلى مراقبة التباين الحالي للقيم و (ن) -يتم تقدير القيم حتى يصبح تباين التقديرات أقل من خطأ محدد.

تقدير التعقيد التشغيلي للخوارزمية

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

النظر في خوارزمية الإزالة لالعنصر من مجموعة من الحجم ص، تتكون من عناصر المصفوفة المتحركة من (ك+ 1) قبل ذلك ص-الرجوع إلى بداية المصفوفة وتقليل عدد العناصر صلكل وحدة. تعقيد دورة معالجة الصفيف هو يا (ص ك)،منذ تنفيذ جسم الحلقة (عملية النقل). الكمبيوترمرات، وتعقيد جسم الحلقة هو 0(1)، أي. هو ثابت.

في المثال قيد النظر، يتميز التعقيد بالخطوط المقاربة 0(")، نظرًا لأن عدد العمليات التي يتم إجراؤها في هذه الخوارزمية لا يعتمد على تفاصيل قيم البيانات. دالة التعقيد حتمية، وجميع أنواع المقاربات تتزامن مع بعضها البعض: و(ن) = س(ن-ك)، و(ن) = 0(ن-ك)و و(ن) = س(ن-ك). وتتجلى هذه الحقيقة من خلال الإشارة ©( ). يجب عليك استخدام 0(*) و/أو؟2(*) فقط إذا كانت هذه الخطوط المقاربة مختلفة.

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

  • عدد عمليات المقارنة في البحث المتسلسل: 0(i);
  • عدد عمليات المقارنة في البحث الثنائي: 0(سجل 2 ص);
  • عدد عمليات المقارنة بطريقة التبادل البسيطة (الفرز الفقاعي): 0(i2);
  • عدد عمليات التقليب في نوع الفقاعة: 0(ن 2);

لاحظ أن عدد عمليات المقارنة في طريقة التبادل البسيط له سلوك مقارب 0(ن 2) وعدد عمليات التقليب له خطين مقاربين مختلفين 0(ن 2)و?2(0)، لأن عدد المقارنات لا يعتمد على تفاصيل قيم البيانات التي يتم فرزها، في حين يتم تحديد عدد التباديل بدقة من خلال هذه التفاصيل. قد لا يتم تنفيذ التباديل على الإطلاق - إذا تم ترتيب مصفوفة البيانات بشكل صحيح في البداية، أو يمكن أن يصل عدد التباديل إلى الحد الأقصى - حوالي ص 2 - إذا تم ترتيب المصفوفة المصنفة في البداية في الاتجاه المعاكس.

اسم وظيفة ز (ن)في الخطوط المقاربة /(l) = @(^(l)) و /(«) = 0(ز(ن))يتم استخدام وظيفة التعقيد /(«) لوصف الخوارزمية. وبالتالي، يتحدثون عن خوارزميات التعقيد متعدد الحدود والأسي واللوغاريتمي وما إلى ذلك.

شرط: 8 يناير 2010

قبل الموعد النهائي المحدد، لا ينبغي أن يتم تحرير المقالة من قبل المشاركين الآخرين في المشروع. موقع إلكتروني. عند الانتهاء، يحق لأي مشارك تصحيح هذه المقالة حسب تقديره وإزالة هذا التحذير المعروض باستخدام القالب ((المهمة)).

أنظر أيضا القواعد الارشاديةبشأن استخدام المورد موقع إلكترونيفي العملية التعليمية.

نظرية التعقيد الحسابي- فرع من النظرية الحسابية يدرس مقدار العمل المطلوب لحل مشكلة حسابية.

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

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

المشاكل الحسابية

مثيلات المهمة

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

عرض المهمة

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

مهام الاعتراف

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

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

مهام البحث

مهمة البحث هي مهمة حسابية حيث تكون قيمة المخرجات أكثر تعقيدًا من مهمة التعرف (أي أنها ليست مجرد "نعم" أو "لا").

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

هناك علاقة زوجية بين مهام التعرف ومهام البحث. يمكن صياغة مشكلة البحث على شكل مشكلة التعرف. على سبيل المثال، بالنسبة لمهمة بحث تتمثل في "ضرب رقمين"، يمكن تمثيل مهمة التعرف الزوجي المقابلة كمجموعة من ثلاثة توائم (A، B، C) بحيث تظل العلاقة A × B = C قائمة.

صعوبة القياس

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

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

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

على غرار مفهوم التعقيد الزمني في أسوأ الحالات، يتم تعريف مفهوم التعقيد الزمني للخوارزمية في أفضل الحالات. نحن نأخذ في الاعتبار أيضًا مفهوم متوسط ​​وقت تشغيل الخوارزمية، أي التوقع الرياضي لوقت تشغيل الخوارزمية. في بعض الأحيان يقولون ببساطة: "التعقيد الزمني للخوارزمية" أو "وقت تشغيل الخوارزمية"، وهذا يعني التعقيد الزمني للخوارزمية في أسوأ الحالات أو أفضلها أو متوسطها (حسب السياق).

عن طريق القياس مع التعقيد الزمني، يتم تحديد التعقيد المكاني للخوارزمية، هنا فقط لا نتحدث عن عدد العمليات الأولية، ولكن عن مقدار الذاكرة المستخدمة.

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

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

يتم تحديد التعقيد بناءً على النموذج الحسابي الذي يتم من خلاله إجراء الحسابات.

النماذج الحسابية

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

آلة تورينج

آلة تورينج (MT) هي آلة أداء مجردة (آلة حوسبة مجردة). تم اقتراحه من قبل آلان تورينج في عام 1936 لإضفاء الطابع الرسمي على مفهوم الخوارزمية.

آلة تورينج هي امتداد لآلة الحالة المحدودة، ووفقًا لأطروحة تشيرتش-تورينج، فهي قادرة على محاكاة جميع المنفذين الآخرين (من خلال تحديد قواعد الانتقال) التي تنفذ بطريقة ما عملية الحساب خطوة بخطوة، حيث كل خطوة الحساب أولية تمامًا.

تتكون آلة تورينج من شريط لا نهائي في كلا الاتجاهين (من الممكن أن تحتوي آلات تورينج على عدة أشرطة لا نهائية)، مقسمة إلى خلايا، وجهاز تحكم يمكن أن يكون في إحدى الحالات العديدة. عدد الحالات المحتملة لجهاز التحكم محدود ومحدد بدقة.

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

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

يُقال إن آلة تورينج حتمية إذا كانت هناك قاعدة واحدة على الأكثر تتوافق مع كل مجموعة من رموز الحالة والشريط في الجدول. إذا كان هناك زوج (رمز الشريط - الحالة) يوجد له تعليماتان أو أكثر، فإن آلة تورينج هذه تسمى غير حتمية.

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

تعد آلة تورينج أحد النماذج الرئيسية للحساب في نظرية التعقيد.

فصول الصعوبة

فئات التعقيد هي مجموعات من المشاكل الحسابية المتساوية تقريبًا في التعقيد الحسابي. هناك فئات تعقيد اللغة وفئات التعقيد الوظيفي. فئة تعقيد اللغات عبارة عن مجموعة من المسندات (الوظائف التي تأخذ كلمة كمدخل وتعيد الإجابة 0 أو 1) التي تستخدم نفس القدر تقريبًا من الموارد للحساب. يتشابه مفهوم فئة التعقيد الوظيفي، إلا أنها ليست مجموعة من المسندات، بل مجموعة من الوظائف. في نظرية التعقيد، فئة التعقيد الافتراضية هي فئة التعقيد في اللغات. التعريف النموذجي لفئة التعقيد يبدو كما يلي:

فئة التعقيد X هي مجموعة المسندات P(x)، القابلة للحساب على آلات تورينج واستخدام موارد O(f(n)) للحساب، حيث n هو طول الكلمة x.

عادةً ما يتم اعتبار الموارد على أنها وقت الحساب (عدد دورات عمل آلة تورينج) أو منطقة العمل (عدد الخلايا المستخدمة على الشريط أثناء التشغيل). اللغات التي يتم التعرف عليها من خلال المسندات من فئة معينة (أي مجموعة الكلمات التي يعود فيها المسند 1) يقال أيضًا إنها تنتمي إلى نفس الفئة.

بالإضافة إلى ذلك، يمكن أيضًا وصف العديد من الفئات من حيث المنطق الرياضي أو نظرية الألعاب.

عادة ما يتم الإشارة إلى الفئات بأحرف كبيرة. يُشار إلى تكملة الفئة C (أي فئة اللغات التي تنتمي مكملاتها إلى C) بـ co-C.

يوجد لكل فصل فئة من المهام "الأكثر صعوبة". هذا يعني أن أي مهمة من الفصل الدراسي يتم تقليلها إلى هذه المهمة، وعلاوة على ذلك، فإن المهمة نفسها تكمن في الفصل الدراسي. تسمى مثل هذه المشاكل مشاكل كاملة لفئة معينة.

فئة P

الفئة P (من كثير الحدود باللغة الإنجليزية) عبارة عن مجموعة من مشكلات التعرف التي يمكن حلها على آلة تورينج حتمية في زمن متعدد الحدود بطول الإدخال. وبالمثل، بالنسبة لمسائل البحث، يتم تعريف الفئة FP (من كثيرات الحدود الوظيفية الإنجليزية).

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

.

إذا للوظيفة Fهناك آلة تورينج مبحيث بالنسبة لبعض العدد جوكبيرة بما فيه الكفاية ن، ثم يقولون أنه ينتمي إلى فئة FP، أو أنه متعدد الحدود في الوقت المناسب.

الفئة P هي إحدى الفئات الأساسية في نظرية التعقيد الحسابي.

فئة NP

فئة NP (من كثيرات الحدود غير الحتمية باللغة الإنجليزية) عبارة عن مجموعة من مشكلات التعرف، التي يعتمد وقت حلها بشكل كبير على حجم بيانات الإدخال؛ في الوقت نفسه، هناك خوارزمية يمكنها، بعد تلقيها، إلى جانب وصف قيم الإدخال، بعض المعلومات الإضافية (شاهد على الحل)، حل المشكلة بسرعة كبيرة (في وقت لا يتجاوز كثير الحدود من حجم البيانات).

وبشكل أكثر رسمية، يُقال أن اللغة L تنتمي إلى الفئة NP إذا كان هناك مسند ذو مكانين R(x, y) من الفئة P (أي قابلة للحساب في زمن كثير الحدود) وp متعدد الحدود بحيث يكون لأي كلمة x من الطول n الشرط "x ينتمي إلى L" "يعادل الشرط "يوجد y بطول أقل من p(n) بحيث يكون R(x, y) صحيحًا." تسمى الكلمة y شاهدًا على أن x تنتمي إلى اللغة L. وبالتالي، إذا كان لدينا كلمة تنتمي إلى اللغة وكلمة شاهد أخرى ذات طول محدود (والتي قد يصعب العثور عليها)، فيمكننا التحقق بسرعة من أن x تنتمي حقًا إلى L. يمكن حل أي مشكلة تنتمي إلى NP في وقت أسي من خلال البحث في جميع الشواهد المحتملة ذات الطول الأقل من p(n).

مشكلة نموذجية من NP: مشكلة التعرف "وجود حل صحيح لنظام من المتباينات الخطية". الشاهد هو الحل لنظام عدم المساواة. من السهل التحقق في زمن كثير الحدود من أن حل الشاهد مناسب.

تتضمن فئة NP الفئة P.

القضايا المفتوحة

في نظرية التعقيد الحسابي، هناك العديد من المشكلات التي لم يتم حلها؛ وهي تتعلق بشكل أساسي بقضايا تقسيم أو تداخل فئات معينة من التعقيد. أحد هذه الأسئلة هو مشكلة المساواة بين الفئتين P و NP.

مشكلة المساواة بين الفئتين P و NP

في النهاية، مشكلة المساواة الطبقية P وNP هي: إذا كان من الممكن التحقق بسرعة من الإجابة الإيجابية لسؤال ما (في زمن كثير الحدود)، فهل صحيح أنه يمكن العثور على إجابة هذا السؤال بسرعة (في زمن كثير الحدود)؟

النتيجة الطبيعية التالية تتبع مباشرة تعريف الفئتين P وNP: . ومع ذلك، لا يوجد شيء معروف حتى الآن عن مدى صرامة هذا الإدراج، أي. هل هناك خوارزمية تكمن في NP ولكن ليس في P؟ إذا لم تكن مثل هذه الخوارزمية موجودة، فيمكن حل جميع المشكلات التي تنتمي إلى الفئة NP في وقت متعدد الحدود، مما يعد بفوائد هائلة من وجهة نظر حسابية. حاليًا، يمكن حل أصعب مشكلات NP (ما يسمى بمشاكل NP الكاملة) في وقت أسي، وهو أمر غير مقبول دائمًا تقريبًا.

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

الأدب

  1. Gehry M.، Johnson D. آلات الحوسبة والمشكلات التي يصعب حلها. دار النشر مير عام 1982. - 420 ق. إن دراسة العلماء الأمريكيين مخصصة لحل المشكلات التوافقية المعقدة (بما في ذلك NP-hard) التي تنشأ في التحسين المنفصل والبرمجة الرياضية والجبر ونظرية الأتمتة مع أمثلة.
  2. كورمان، توماس ه.؛ ليسرسون، تشارلز الأول. ريفست، رونالد L.؛ شتاين، خوارزميات كليفورد: البناء والتحليل، الطبعة الثانية = مقدمة للخوارزميات الطبعة الثانية. - م: "وليامز"، 2005. -

وقت ثابت

يقولون أن الخوارزمية هي خوارزمية وقت ثابت(مسجل في الوقت المناسب يا(1))، إذا كانت القيمة ت(ن) يقتصر على قيمة مستقلة عن حجم الإدخال. على سبيل المثال، يستغرق استرداد عنصر واحد في مصفوفة وقتًا ثابتًا لأنه يتم تنفيذ أمر واحد لتحديد موقعه. ومع ذلك، فإن العثور على الحد الأدنى من القيمة في مصفوفة غير مصنفة لا يعد عملية ثابتة في الوقت حيث يتعين علينا المرور عبر كل عنصر من عناصر المصفوفة. وبالتالي، تستغرق هذه العملية وقتًا خطيًا، O(n). إذا كان عدد العناصر معروفًا مسبقًا ولم يتغير، فيمكن التحدث عن مثل هذه الخوارزمية على أنها خوارزمية الوقت الثابت.

على الرغم من الاسم "الوقت الثابت"، لا يجب أن يكون وقت التشغيل مستقلاً عن حجم المشكلة، ولكن لا ينبغي أن يكون الحد الأعلى لوقت التشغيل مستقلاً. على سبيل المثال، مهمة "تبادل القيم أو ب، إذا لزم الأمر، حتى تكون النتيجة أب"، تعتبر مشكلة وقت ثابت، على الرغم من أن وقت تشغيل الخوارزمية قد يعتمد على ما إذا كانت عدم المساواة قائمة بالفعل أبأم لا. ومع ذلك، هناك ثابت معين ر، والذي يكون وقت تنفيذ المهمة دائمًا لا يتجاوز ر.

فيما يلي بعض أمثلة التعليمات البرمجية التي تعمل في وقت ثابت:

مؤشر كثافة العمليات = 5؛ عنصر int = قائمة؛ لو(الشرط صحيح) ثمآخرتنفيذ بعض العمليات مع وقت تشغيل ثابت لأنا = 1 ل 100 لي = 1 ل 200 يقوم ببعض العمليات مع وقت تشغيل ثابت

لو ت(ن) يساوي O( بعض القيمة الثابتة)، وهذا يعادل ت(ن) هو O(1).

الزمن اللوغاريتمي

الوقت اللوغاريتمي، لو ت(ن) = يا (سجل ن) . نظرًا لأن أجهزة الكمبيوتر تستخدم نظام الأرقام الثنائية، يتم استخدام 2 كأساس للوغاريتم (أي السجل 2) ن). رغم ذلك، متى استبدال القاعدةسجل اللوغاريتمات أ نوسجل ب نتختلف فقط بعامل ثابت، والذي تم تجاهله في التدوين O-big. لذلك يا (سجل ن) هو التدوين القياسي لخوارزميات الوقت اللوغاريتمية، بغض النظر عن قاعدة اللوغاريتم.

يتم العثور على الخوارزميات التي تعمل في الوقت اللوغاريتمي بشكل شائع عند إجراء عمليات على الأشجار الثنائية أو عند استخدام البحث الثنائي.

تعتبر خوارزميات O(log n) ذات كفاءة عالية لأن وقت التشغيل لكل عنصر يتناقص مع زيادة عدد العناصر.

مثال بسيط جدًا لمثل هذه الخوارزمية هو تقسيم السلسلة إلى نصفين، وتقسيم النصف الثاني إلى نصفين مرة أخرى، وهكذا. يستغرق هذا وقتًا O(log n) (حيث n هو طول السلسلة، ونحن نفترض هنا ذلك console.logو سلسلة فرعيةخذ وقتًا ثابتًا). وهذا يعني أنه لزيادة عدد المطبوعات، يجب مضاعفة طول الخط.

// وظيفة لطباعة النصف الأيمن من السطر بشكل متكرر var right = function (str) (var length = str. length; // وظيفة مساعدةمساعدة فار = الوظيفة (الفهرس) ( // العودية: اطبع النصف الأيمنإذا (فهرس< length ) { // طباعة الأحرف من الفهرس إلى نهاية السطروحدة التحكم. log(str.substring(index, length)); // استدعاء متكرر: استدعاء الوظيفة المساعدة بالجانب الأيمنمساعدة (Math . ceil ((الطول + الفهرس ) / 2 )); ) ) مساعدة ( 0 ); )

وقت بوليلوج

يقال أن الخوارزمية تعمل وقت بوليلوج، لو ت(ن) = O((log ن) ك)، بالنسبة للبعض ك. على سبيل المثال، يمكن حل مسألة ترتيب ضرب المصفوفات في زمن متعدد اللوغاريتمات آلة ذاكرة الوصول العشوائي الموازية .

الوقت الخطي

يقال أن الخوارزمية تعمل الوقت تحت الخطي، لو ت(ن) = س( ن). على وجه الخصوص، يتضمن ذلك خوارزميات التعقيد الزمني المذكورة أعلاه، بالإضافة إلى خوارزميات أخرى مثل بحث جروفر بالتعقيد O( ن ½).

خوارزميات نموذجية، على الرغم من دقتها، إلا أنها لا تزال تعمل في زمن خطي، وتستخدم توازي العمليات (كما تفعل خوارزمية NC 1 لحساب محدد المصفوفة)، أو الحسابات غير الكلاسيكية (كما في بحث جروفر)، أو لديها افتراض مضمون حول بنية المدخلات (مثل تلك التي تعمل في الوقت اللوغاريتمي، وخوارزميات البحث الثنائية والعديد من خوارزميات معالجة الأشجار). ومع ذلك، فإن الإنشاءات الرسمية، مثل مجموعة جميع السلاسل التي تحتوي على البتة 1 في الموضع الذي تحدده بتات السجل (n) الأولى من السلسلة، يمكن أن تعتمد على كل بتة من المدخلات ولكنها تظل خطية فرعية في الوقت المناسب.

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

وبما أن مثل هذه الخوارزمية يجب أن تنتج إجابة دون قراءة بيانات الإدخال بشكل كامل، فإنها تعتمد بشكل كبير على طرق الوصول المسموح بها في دفق الإدخال. عادةً ما يكون الدفق عبارة عن سلسلة بت ب 1 ,...,ب ك، من المفترض أن الخوارزمية يمكنها طلب قيمة في زمن O(1). ب طلأي احد أنا.

عادةً ما تكون خوارزميات الوقت الخطية احتمالية وتوفر حلاً تقريبيًا فقط. تنشأ خوارزميات وقت التشغيل الخطية بشكل طبيعي عند البحث الشيكات الملكية.

الوقت الخطي

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

غالبًا ما يُنظر إلى الوقت الخطي على أنه سمة مرغوبة في الخوارزمية. تم إجراء الكثير من الأبحاث لإنشاء خوارزميات ذات وقت تشغيل خطي (تقريبًا) أو أفضل. وشملت هذه الدراسات نهج البرمجيات والأجهزة. في حالة تنفيذ الأجهزة، فإن بعض الخوارزميات، من وجهة نظر رياضية، لا يمكنها أبدًا تحقيق وقت تنفيذ خطي في نماذج الحوسبة القياسية، يمكن تشغيلها في وقت خطي. هناك بعض تقنيات الأجهزة التي تستخدم التوازي لتحقيق هذا الهدف. مثال على ذلك الذاكرة الترابطية. يُستخدم مفهوم الوقت الخطي هذا في خوارزميات مقارنة السلسلة مثل خوارزمية Boyer-Moore وخوارزمية Ukkonen.

الزمن شبه الخطي

يقال إن الخوارزمية تعمل في وقت شبه خطي إذا ت(ن) = يا( نسجل ك ن) لبعض ثابت ك. الوقت اللوغاريتمي الخطي هو حالة خاصة ك= 1 . باستخدام علامة O الضعيفة، تكون هذه الخوارزميات Õ( ن). خوارزميات الوقت شبه الخطية هي أيضًا o( ن 1+ε) لأي ε > 0 ويعمل بشكل أسرع من أي متعدد الحدود ن

تشمل الخوارزميات التي تعمل في الزمن شبه الخطي، بالإضافة إلى الخوارزميات اللوغاريتمية الخطية المذكورة أعلاه، ما يلي:

  • فرز الدمج في المكان، O( نسجل 2 ن)
  • الفرز السريع، يا( نسجل ن)، في النسخة الاحتمالية، يكون وقت تنفيذ أسوأ الحالات لوغاريتميًا خطيًا. النسخة غير الاحتمالية لها وقت تشغيل لوغاريتمي خطي فقط لقياس التعقيد في المتوسط.
  • هيبسورت، يا( نسجل ن)، فرز الدمج، الفرز الداخلي، فرز الشجرة الثنائية، الفرز السلس، فرز سوليتير، إلخ. في أسوأ الأحوال
  • تحويلات سريعة فورييه ، O( نسجل ن)
  • حساب مصفوفات مونجي، O( نسجل ن)

الوقت اللوغاريتمي الخطي

اللوغاريتم الخطي هو حالة خاصة من الزمن شبه الخطي مع الأس ك= 1 على المدى اللوغاريتمي.

دالة لوغاريتمية خطيةهي وظيفة النموذج نسجل ن(أي المنتج خطيوالمصطلحات اللوغاريتمية). يقولون أن الخوارزمية تعمل في الزمن اللوغاريتمي الخطي، لو ت(ن) = يا( نسجل ن) . وبالتالي، فإن الحد الخطي اللوغاريتمي ينمو بشكل أسرع من الحد الخطي، ولكنه أبطأ من أي كثير حدود نبدرجة أكبر من 1.

في كثير من الحالات، وقت التشغيل نسجل نهو ببساطة نتيجة تنفيذ العملية Θ(log ن) نمرة واحدة. على سبيل المثال، يقوم فرز الشجرة الثنائية بإنشاء شجرة ثنائية عن طريق إدراج كل عنصر في مصفوفة ذات حجم n واحدًا تلو الآخر. منذ عملية الإدراج في شجرة البحث الثنائية المتوازنةيستغرق وقتا (سجل). ن)، سيكون إجمالي وقت تنفيذ الخوارزمية لوغاريتميًا خطيًا.

أنواع المقارنةتتطلب عددًا على الأقل من المقارنات اللوغاريتمية الخطية لأسوأ الحالات، نظرًا لأن log( ن!) = Θ( نسجل ن) وفقا لصيغة ستيرلنغ. غالبًا ما ينشأ نفس وقت التنفيذ من معادلة التكرار ت(ن) = 2 ت(ن/2) + يا( ن).

الزمن شبه التربيعي

بعض الأمثلة على خوارزميات الوقت متعددة الحدود:

زمن متعدد الحدود بدقة وضعيفة

في بعض السياقات، خاصة في مجال التحسين، يتم التمييز بين الخوارزميات ذات وقت متعدد الحدود صارمو زمن متعدد الحدود ضعيف. ينطبق هذان المفهومان فقط على المدخلات الصحيحة.

يتم تعريف الوقت متعدد الحدود بشكل صارم في النموذج الحسابي للحساب. في هذا النموذج، يتم أخذ العمليات الحسابية الأساسية (الجمع والطرح والضرب والقسمة والمقارنة) كوحدات تنفيذ، بغض النظر عن طول المعاملات. تعمل الخوارزمية في وقت متعدد الحدود بدقة إذا

  1. عدد العمليات في نموذج الحساب الحسابي محدود بعدد متعدد الحدود في عدد الأعداد الصحيحة في تدفق الإدخال، و
  2. الذاكرة التي تستخدمها الخوارزمية محدودة بمتعدد الحدود لحجم الإدخال.

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

على العكس من ذلك، هناك خوارزميات تعمل في عدد خطوات آلة تورينج المحدودة بطول متعدد الحدود للمدخل المشفر الثنائي، ولكنها لا تعمل في عدد العمليات الحسابية المحدودة بواسطة متعدد الحدود في عدد الأرقام في الإدخال. تعتبر خوارزمية إقليدس لحساب القاسم المشترك الأكبر لعددين صحيحين أحد الأمثلة. لعددين صحيحين أ (\displaystyle أ)و ب (\displaystyle b)وقت تشغيل الخوارزمية محدود O ((سجل ⁡ أ + سجل ⁡ ب) 2) (\displaystyle O((\log \ a+\log \ b)^(2)))خطوات آلة تورينج. هذا الرقم هو متعدد الحدود لحجم التمثيل الثنائي للأرقام أ (\displaystyle أ)و ب (\displaystyle b)، والتي يمكن تمثيلها تقريبًا كـ سجل ⁡ أ + سجل ⁡ ب (\displaystyle \log \a+\log \b). في الوقت نفسه، لا يمكن أن يقتصر عدد العمليات الحسابية على عدد الأعداد الصحيحة في الإدخال (وهو في هذه الحالة ثابت - يوجد رقمان فقط في الإدخال). وبسبب هذه الملاحظة، فإن الخوارزمية لا تعمل في زمن متعدد الحدود بشكل صارم. يعتمد وقت التشغيل الحقيقي للخوارزمية على الكميات أ (\displaystyle أ)و ب (\displaystyle b)، وليس فقط عدد الأعداد الصحيحة في الإدخال.

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

فصول الصعوبة

يؤدي مفهوم الزمن متعدد الحدود إلى عدة فئات تعقيد في نظرية التعقيد الحسابي. بعض الفئات الهامة المحددة باستخدام وقت متعدد الحدود مذكورة أدناه.

  • : فئة من مسائل قابلية الحل التي يمكن حلها في آلة تورينج الحتمية في زمن متعدد الحدود.
  • : فئة التعقيد لمشاكل قابلية الحل التي يمكن حلها في آلة تورينج غير حتمية في زمن متعدد الحدود.
  • ZPP: فئة التعقيد لمشاكل قابلية الحل التي يمكن حلها بدون خطأ في آلة تورينج الاحتمالية في زمن متعدد الحدود.
  • : فئة التعقيد لمشاكل قابلية الحل التي يمكن حلها بأخطاء أحادية الجانب في آلة تورينج الاحتمالية في زمن متعدد الحدود.
  • بي بي بيآلة تورينج الاحتمالية في زمن متعدد الحدود.
  • بكب: فئة تعقيد مسائل قابلية الحل التي يمكن حلها بأخطاء ثنائية الاتجاه في آلة تورينج الكمومية في زمن متعدد الحدود.

P هي أصغر فئة تعقيد زمني على آلة حتمية، وهي مستمرمن حيث تغيير موديل السيارة. (على سبيل المثال، قد يؤدي الانتقال من آلة تورينج أحادية الشريط إلى آلة تورينج متعددة الأشرطة إلى تسريع تربيعي، ولكن أي خوارزمية تعمل في زمن متعدد الحدود على أحد النماذج ستعمل في زمن متعدد الحدود على النموذج الآخر.)

الزمن الفائق الحدود

يقولون أن الخوارزمية تعمل في الوقت الفائق الحدود، لو ت(ن) لا يحدها أعلاه كثيرة الحدود. هذه المرة تساوي ω( ن ج) لجميع الثوابت ج، أين ن- معلمة الإدخال، وعادة ما تكون عدد بتات الإدخال.

على سبيل المثال، الخوارزمية التي تنفذ 2 نخطوات إدخال الحجم نيتطلب وقتًا متعدد الحدود (وبشكل أكثر تحديدًا، الوقت الأسي).

من الواضح أن الخوارزمية التي تستخدم الموارد الأسية هي متعددة الحدود الفائقة، ولكن بعض الخوارزميات تكون متعددة الحدود بشكل ضعيف جدًا. على سبيل المثال، اختبار البساطة أدلمان-بوميرانز-روميلي*يعمل للوقت نيا (سجل السجل ن) على نإدخال بت. وهذا ينمو بشكل أسرع من أي متعدد الحدود لحجم كبير بما فيه الكفاية ن، ولكن يجب أن يصبح حجم الإدخال كبيرًا جدًا بحيث لا يهيمن عليه متعدد الحدود ذو الدرجة المنخفضة.

الخوارزمية التي تتطلب وقتًا متعدد الحدود تقع خارج فئة التعقيد. أطروحة كوبهاميجادل بأن هذه الخوارزميات غير عملية، وهي كذلك في كثير من الحالات. نظرًا لأن مشكلة المساواة بين الفئتين P وNP لم يتم حلها، فلا توجد خوارزميات معروفة حاليًا لحل مشكلات NP الكاملة في زمن متعدد الحدود.

الوقت شبه متعدد الحدود

الخوارزميات زمن شبه متعدد الحدودهي خوارزميات تعمل بشكل أبطأ من الزمن متعدد الحدود، ولكنها ليست بطيئة مثل خوارزميات الوقت الأسي. أسوأ حالة تشغيل للخوارزمية شبه متعددة الحدود هي ج. خوارزمية كلاسيكية معروفة لتحليل الأعداد الصحيحة، لاشبه متعدد الحدود، حيث لا يمكن تمثيل وقت التشغيل على أنه 2 O ((سجل ⁡ n) ج) (\displaystyle 2^(O((\log n)^(c))))لبعض ثابتة ج. إذا كان الثابت "c" في تعريف خوارزمية زمنية شبه متعددة الحدود هو 1، نحصل على خوارزمية زمنية متعددة الحدود، وإذا كان أقل من 1، نحصل على خوارزمية زمنية فرعية.

عادةً ما تنشأ خوارزميات شبه متعددة الحدود عند اختزال مشكلة NP-hard إلى مشكلة أخرى. على سبيل المثال، يمكنك أن تأخذ مسألة NP-hard، على سبيل المثال 3SAT، وتختصرها إلى مشكلة أخرى ب، لكن حجم المشكلة يصبح 2 O ((سجل ⁡ n) ج) (\displaystyle 2^(O((\log n)^(c)))). في هذه الحالة، لا يثبت التخفيض أن المشكلة B هي NP-hard، بل يوضح فقط أنه لا توجد خوارزمية متعددة الحدود لـ B ما لم تكن هناك خوارزمية شبه متعددة الحدود لـ 3SAT (ثم لجميع المشاكل). وبالمثل، هناك بعض المسائل التي نعرف لها خوارزميات زمنية شبه متعددة الحدود، لكننا لا نعرف لها خوارزميات زمنية متعددة الحدود. تظهر مثل هذه المشاكل في خوارزميات التقريب. ومن الأمثلة الشهيرة على ذلك مسألة شتاينر الموجهة، والتي يوجد لها خوارزمية تقريبية شبه متعددة الحدود مع معامل تقريب O (سجل 3 ⁡ n) (\displaystyle O(\log ^(3)n))(حيث n هو عدد القمم)، ولكن وجود خوارزمية متعددة الحدود للزمن يمثل مشكلة مفتوحة.

فئة الصعوبة قطر للبتروليتكون من جميع المسائل التي لها خوارزميات زمنية شبه متعددة الحدود. يمكن تعريفه من حيث DTIME على النحو التالي

QP = ⋃ c ∈ N DTIME (2 (log ⁡ n) c) (\displaystyle (\mbox(QP))=\bigcup _(c\in \mathbb (N) )(\mbox(DTIME))(2^ ((\ سجل ن)^(ج))))

اتصال مع مشاكل NP-كاملة

في نظرية التعقيد، تسأل مشكلة المساواة غير المحلولة بين الفئتين P وNP ما إذا كانت جميع المشاكل في الفئة NP لها خوارزميات حل متعددة الحدود. جميع الخوارزميات المعروفة للمسائل NP-Complete، مثل 3SAT، لها وقت أسي. علاوة على ذلك، هناك فرضية مفادها أنه بالنسبة للعديد من المسائل الطبيعية NP-Complete لا توجد خوارزميات ذات وقت تشغيل أسي فرعي. هنا يتم أخذ "الوقت الأسي الفرعي" بمعنى التعريف الثاني الوارد أدناه. (من ناحية أخرى، العديد من مشاكل نظرية الرسم البياني، التي يتم تمثيلها بشكل طبيعي بواسطة مصفوفات المجاورة، قابلة للحل في زمن أسي فرعي ببساطة لأن حجم المدخلات يساوي مربع عدد القمم.) هذا التخمين (بالنسبة لـ k- مشكلة SAT) معروفة باسم فرضية الوقت الأسي. نظرًا لأنه يفترض أن المسائل NP الكاملة لا تحتوي على خوارزميات زمنية شبه متعددة الحدود، فإن بعض نتائج عدم التقريب في مجال خوارزميات التقريب تفترض أن المسائل NP الكاملة لا تحتوي على خوارزميات شبه متعددة الحدود. على سبيل المثال، راجع النتائج المعروفة حول عدم تقريب مشكلة غطاء المجموعة.

الوقت الأسي

شرط الأسيوقتيتم استخدامه للتعبير عن أن وقت تنفيذ بعض الخوارزميات يمكن أن ينمو بشكل أسرع من أي متعدد الحدود، ولكنه يظل أقل بكثير من الأسي. وبهذا المعنى، فإن المشكلات التي لها خوارزميات زمنية أسية فرعية تكون أكثر قابلية للحل من الخوارزميات ذات الزمن الأسي فقط. التعريف الدقيق لـ "subexponential" لم يتم قبوله بشكل عام بعد، ونعرض أدناه التعريفين الأكثر شيوعًا.

التعريف الأول

يُقال إن المشكلة قد تم حلها في وقت أسي فرعي إذا تم حلها بواسطة خوارزمية يكون لوغاريتم وقت تشغيلها أقل من أي كثير حدود معين. بتعبير أدق، يكون للمشكلة وقت أسي فرعي إذا كانت هناك خوارزمية تحل المشكلة في زمن O(2 n ε) لأي ε > 0. مجموعة كل هذه المشاكل تشكل فئة التعقيد سوبكسب، والتي يمكن التعبير عنها من حيث DTIME كـ .

SUBEXP = ⋂ ε > 0 DTIME (2 n ε) (\displaystyle (\text(SUBEXP))=\bigcap _(\varepsilon >0)(\text(DTIME))\left(2^(n^(\varepsilon ))\يمين))

لاحظ أن ε هنا ليس جزءًا من بيانات الإدخال ولكل ε يمكن أن يكون هناك خوارزمية خاصة به لحل المشكلة.

التعريف الثاني

يعرّف بعض المؤلفين الوقت الأسي الفرعي بأنه وقت تشغيل قدره 2 o( ن) . يسمح هذا التعريف بفترات تشغيل أطول من التعريف الأول. مثال على خوارزمية الوقت الأسية الفرعية هذه هي الخوارزمية الكلاسيكية المعروفة لتحليل الأعداد الصحيحة، وهي طريقة الغربلة العامة لحقل الأرقام، والتي تعمل في حوالي 2 O ~ (n 1 / 3) (\displaystyle 2^((\tilde (O))(n^(1/3))))، حيث يكون طول الإدخال ن. مثال آخر هو الخوارزمية المعروفة لـ مشاكل التماثل البياني، الذي يساوي وقت التشغيل 2 O ((n log ⁡ n)) (\displaystyle 2^(O((\sqrt (())n\log n)))).

لاحظ أنه يحدث فرقًا ما إذا كانت الخوارزمية ذات أسية فرعية في عدد القمم أو عدد الحواف. في التعقيد المعلمةيتم توضيح هذا الاختلاف من خلال تحديد الزوج ومشكلة قابلية الحل والمعلمة ك. فرعيهي فئة جميع المهام ذات المعلمات التي يتم تشغيلها في وقت أسي فرعي كوللكثيرة الحدود في ن :

SUBEPT = DTIME (2 o (k) ⋅ poly (n)) . (\displaystyle (\text(SUBEPT))=(\text(DTIME))\left(2^(o(k))\cdot (\text(poly))(n)\right.)

بتعبير أدق، SUBEPT هي فئة كافة المهام ذات المعلمات (ل، ك) (\displaystyle (L,k))، والتي توجد لها وظيفة محسوبة f: N → N (\displaystyle f:\mathbb (N) \to \mathbb (N))مع و ∈ o (ك) (\displaystyle f\in o(k))والخوارزمية التي تحل لخلال 2 f (k) ⋅ بولي (n) (\displaystyle 2^(f(k))\cdot (\text(poly))(n)).

لمقارنة الخوارزميات، من المعتاد استخدام خاصية عامة تسمى الكفاءة. يقولون أن الخوارزمية L، أكثر فعاليةخوارزمية أ 2،إذا كانت الخوارزمية L، فإنها تعمل في وقت أقل و (أو) تتطلب موارد كمبيوتر أقل (ذاكرة الوصول العشوائي، ومساحة القرص، وحركة مرور الشبكة، وما إلى ذلك).

يجب أن تفي الخوارزمية الفعالة بمتطلبات وقت التنفيذ المقبول والاستهلاك المعقول للموارد، كما هو مذكور بالفعل في الفقرة 1.1. يشكل الجمع بين هذه الخصائص مفهوم تعقيد الخوارزمية. ومع زيادة وقت تنفيذ الخوارزمية و/أو الموارد المعنية، يزداد التعقيد. وبالتالي، فإن مفهومي الكفاءة والتعقيد يتعارضان مع بعضهما البعض.

تسمى خاصية الخوارزمية التي تعكس الوقت المستغرق في تنفيذها تعقيد الوقت.تسمى خاصية الخوارزمية التي تعكس تكاليف موارد الكمبيوتر لتنفيذها التعقيد بالسعة.

في التقييمات الكمية والنوعية للخوارزمية المتعلقة بتحديد التعقيد، يتم استخدام نهجين - عملي ونظري.

نظرة عمليةالمرتبطة بتشغيل الخوارزميات فعليًا على أجهزة فعلية محددة. ويتميز بمعلمات يمكن قياسها وتسجيلها. يمكن التعبير عن التعقيد الزمني في هذا النهج بوحدات زمنية (على سبيل المثال، ميلي ثانية) أو عدد دورات المعالج التي يقضيها في تنفيذ الخوارزمية. يمكن التعبير عن التعقيد السعوي بالبت (أو وحدات أخرى من المعلومات)، والحد الأدنى من متطلبات الأجهزة المطلوبة لتنفيذ الخوارزمية، وما إلى ذلك.

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

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

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

التعقيد النظرييميز الخوارزمية دون الرجوع إلى أجهزة وبرامج وأدوات تنفيذ محددة. في هذه الحالة، يتم التعبير عن التعقيد الزمني في عدد العمليات ودورات تشغيل آلة تورينج وما إلى ذلك. يتم تحديد التعقيد السعوي من خلال حجم البيانات (الإدخال، الوسيط، الإخراج)، وعدد الخلايا المعنية على شريط آلة Thjoring، وما إلى ذلك.

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

قد تعتمد التقديرات الكمية التي يتم الحصول عليها باستخدام النهج النظري أيضًا على عدد من العوامل التالية:

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

يعتمد وقت تنفيذ الخوارزمية عادةً على حجم البيانات المدخلة (حجم الإدخال)، والذي يُفهم على أنه بُعد المشكلة التي يتم حلها. لذا، عند فرز مجموعة من القيم، يكون حجم البيانات هو عدد عناصر هذه المجموعة. عند معالجة السلاسل، يكون حجم البيانات المدخلة هو طول السلسلة.

يترك ف -كمية البيانات المدخلة لبعض الخوارزمية. دعنا نشير بـ تي (ع)عدد التعليمات التي يتم تنفيذها على جهاز كمبيوتر مثالي عند تنفيذ خوارزمية، ويتم تحديده لـ "أسوأ الحالات" عندما يصل حجم العمليات إلى الحد الأقصى.

يمكن توضيح مفهوم "أسوأ الحالات" بمثال. دعونا نفكر في خوارزمية للتحقق من وجود عنصر رقمي في مجموعة (مصفوفة) معينة من الأرقام. إذا تم ترتيب هذه المجموعة بترتيب تصاعدي، فلا فائدة بشكل عام من التحقق من العناصر الموجودة بعد العنصر الأول الأكبر من العنصر الذي تم البحث عنه. في هذه الحالة تي (ع)إلخ. ومع ذلك، في أسوأ الحالات (بالنسبة لمجموعة عشوائية غير مصنفة)، سيتعين عليك مراجعة جميع عناصر المجموعة. من الواضح هنا تي (ع) = ص.

بشكل عام، تي (ع)هي بعض الوظائف لكمية البيانات المدخلة ص.في كثير من الحالات تي (ع)يتم التعبير عنها كدالة متعددة الحدود أو قوة أو لوغاريتمية ص.

سلوك الكمية تي (ع)اعتمادا على التكبير صمُسَمًّى التعقيد المقاربخوارزمية. ويقولون ان ت(ص) لقد ترتيب التعقيد 0(J(n))(يقرأ "عنكبيرة من/من ف")لبعض الخوارزمية، إذا كان هناك ثابت معوحجم البيانات شمثل ذلك أعلى > ن 0وهناك عدم مساواة ت(ص) ق/(ن).

هذه الحقيقة مكتوبة كما تي(ن) = 0(ي(ن))ويعني أن لهذه الوظيفة تي (ع)هناك مثل هذه الوظيفة و (ن)وثابت ج، الذي يبدأ من بعض ن 0,معنى تي (ع)لا يتجاوز راجع (ن).

وظيفة و (ن)يمثل الحد الأعلى لقيم الدالة تي (ن).دعونا، على سبيل المثال، ت(ن) = 2ص أ + ن 2.اختيار القيم ن 0= 0 و ج = 5، لأي شخص ن > ن 0لدينا ت(ن) = 2ص أ + ن 2 T(n) من الرتبة i 4.

وظيفة ت(ص) يرتبط بخوارزمية محددة، لذلك يُقال غالبًا أن ترتيب التعقيد 0(/(ن))لديه بالضبط الخوارزمية.

ويقولون ان تي (ع)لقد الحد الأدنى Q(g(n))(يقرأ "أوميغا كبيرة من ز from /g")، في حالة وجود الثابت c وكمية البيانات ن 0مثل ذلك / صوهناك عدم مساواة تي (ن) > الفريق الاستشاري (ن).

هذه الحقيقة مكتوبة كما تي(ن) = س(ز(ن)).دعونا، على سبيل المثال، ت(ن) =الثانية 4 + ن 2.اختيار قيمة ج = 1، لأي شخص صلدينا تي (ع)= الثاني 4 + ع2 > س أ >لذلك، ت(ص) لديه الحد الأدنى ط 4 .

من السهل أن نرى أن الترتيب والحد الأدنى ليسا فريدين لبعض الوظائف تي (ن).في الأمثلة أعلاه، يمكن للمرء أن يختار i 5 و i 6 و... كـ /(i) وكـ ز (ن) - i 3, i 2,.... عادة يتم اختيار الدالة ذات الدرجة الدنيا كـ /(i) و as ز (ن)- بالحد الأقصى.

يمثل ترتيب التعقيد 0(/(i)) والحد الأدنى Q(g(rc)) فئات الوظائف. بشكل بديهي، يمكن فهم Q(g"(n)) على أنها فئة من الوظائف تنمو بنفس سرعة نموها على الأقل تي (ن).وبالمثل، بشكل حدسي 0(و(ن))يمكن فهمها على أنها فئة من الوظائف التي لا تنمو بشكل أسرع من تي (ع). معمن الناحية العملية، عند تقييم مدى تعقيد الخوارزمية، فإن الشيء الأكثر أهمية هو فئة الوظائف 0(و(ن)).تحديد نوع الدالة /(i) هو المهمة الرئيسية للحسابالتعقيد النظري للخوارزمية.

بالنسبة لأي خوارزمية، عند تحديد درجة النمو، يمكنك استخدام الخصائص التالية لـ 0(/(i)):

1) 0(كف(جي))= 0(/(ط))، حيث ك= ثابت. وبالتالي فإن المضاعف الثابت في الدالة لا يؤثر على معدل النمو. على سبيل المثال،

2) 0(J(ري)"g(n)) = 0(J(n))"0(g(ri)).وبالتالي فإن ترتيب حاصل ضرب وظيفتين يساوي حاصل ضرب تعقيداتهما. على سبيل المثال،

في بعض الأحيان تتم كتابة هذه الخاصية كـ

3) 0(/(ع) + ز (ن))يساوي مسيطر(وظائف بأقصى درجة) وظائف /(ط) و ز (ن).على سبيل المثال،

في نظرية تعقيد الخوارزميات، يتم التمييز بين الفئات التالية من وظائف التعقيد:

  • 1) التعقيد المستمر 0(1). لا يعتمد وقت تشغيل الخوارزمية والموارد المستخدمة على كمية بيانات الإدخال. عادةً ما تكون الخوارزميات التي لا تحتوي على حلقات واستدعاءات متكررة بهذا التعقيد؛
  • 2) التعقيد الخطي 0(ن).عادة، يتم العثور على هذا التعقيد في المهام التي يجب فيها معالجة كل عنصر من عناصر بيانات الإدخال لعدد معين من المرات، وهو ما لا يرتبط بأي حال من الأحوال بعدد معالجة العناصر الأخرى؛
  • 3) التعقيد اللوغاريتمي 0(سجل 2 ث)، 0(رقم 2 ن).يتم استخدام قواعد لوغاريتمية أخرى في بعض الأحيان؛
  • 4) تعقيد متعدد الحدود 0(i 2), 0(i 3), 0(i 4),...;
  • 5) التعقيد الأسي 2 ص, 3",....

مع زيادة حجم الإدخال، يزداد تعقيد كل نوع وظيفة لاحق بشكل أسرع من النوع السابق (باستثناء 0(سجل 2 /؟)). للحصول على كمية كبيرة بما فيه الكفاية من بيانات الإدخال، يفضل استخدام خوارزميات أقل تعقيدًا.

عند حساب التعقيد كميًا، يتم في البداية تحديد عملية أو مجموعة من العمليات المهمة لهذه الخوارزمية (التي تشكل أساسها). هذه عادة ما تكون عمليات المقارنة والعمليات الحسابية. تشمل عمليات المقارنة التحقق من قيم كميتين (أقل من، أكبر من، يساوي، أقل من أو يساوي، أكبر من أو يساوي، لا يساوي). فهي تعتبر متساوية في وقت التنفيذ. وتنقسم العمليات الحسابية بدورها إلى المضافةو مضاعف.إلى الأول (غالبًا ما يطلق عليه ببساطة إضافة)تتضمن إضافة أو طرح أو إنقاص أو إنقاص قيمة عدادية. إلى الثاني (يسمى ببساطة عمليه الضرب)تشمل الضرب والقسمة، modulo.

تعد عمليات الجمع أسرع من عمليات الضرب، لذا يفضل الخوارزميات ذات الضربات الأقل، حتى لو زاد عدد الإضافات بما يتناسب مع عدد مضاعفات النقصان.

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

بمجرد اختيار العمليات الهامة، يتم تقسيمها إلى فئتين:

  • 1) العمليات التي تؤثر بشكل مباشر على تعقيد الخوارزمية؛
  • 2) العمليات التي تشكل "الحمل الزائد" عند تنفيذ الخوارزمية (على سبيل المثال، تخصيص الذاكرة لتخزين البيانات الوسيطة).

يتيح لك العد المباشر أو تقدير عدد العمليات التي تم تنفيذها إجراء التقدير تي (ن).

لتقدير ترتيب التعقيد، يمكنك استخدام تحليل كود البرنامج الذي ينفذ الخوارزمية. حيث:

  • الخوارزميات التي لا تحتوي على حلقات ومكالمات متكررة لها درجة تعقيد من الترتيب 0(1). وبالتالي، فإن عمليات التخصيص، وإدخال البيانات ومخرجاتها، والهياكل الشرطية لها تعقيد مستمر؛
  • إذا كان هناك صعوبات في جزأين من رمز البرنامج 0(ي((ري))و 0(ي 2 (ن))،ثم التنفيذ المتسلسل له تعقيد
  • إذا تم تنفيذ نص الحلقة مرة واحدة لكل عنصر من عناصر البيانات المدخلة، فإن تعقيد تنفيذ الحلقة يكون من ترتيب 0(ن)0( 1) = 0(ن);
  • يتم حساب ترتيب تعقيد تنفيذ الحلقات المتداخلة باستخدام قاعدة المنتج 0(ي س (ن)و 2 (ن)) = 0(/,(/?))- 0(ي2(ري)).إذا كان كل واحد منهم لديه تعقيد النظام 0(ن)،تنفيذ الحلقات المتداخلة له تعقيد بترتيب 0(ن 2).

مثال 1.3

تحديد ترتيب تعقيد خوارزمية البرنامج في اللغة

باسكال هو مبين في القائمة 1.2. يتم ترقيم خطوط البرنامج كتعليقات (انظر الفقرة 2.6).

القائمة 1.2

(01) لـ i:=l to n do

(02) البدء

(03) اكتب ("أدخل عنصر الصفيف

مع الفهرس ",i,": ");

(04) ريدلن(MyArray[i]);

(05)النهاية؛

(06) لـ i:=l to n do

(07) لـ j:=1 إلى n افعل

(08) البدء

(09) اكتب ("أدخل عنصر الصفيف

مع الفهارس "، i، "،، j، " : ")؛

(10) ريدلن (MyDArray)؛

(11) النهاية؛

حل

لا تحتوي الأسطر 02، 05، 08، 11 على بيانات قابلة للتنفيذ، لذلك لا يتم أخذها في الاعتبار عند تحديد الأمر.

السطران 03 و04 لهما الترتيب 0(1). تنفيذها المتسلسل له الترتيب 0(1) + 0(1) = 0(1). وبالمثل، فإن تنفيذ السطرين 09 و10 بالتتابع له درجة تعقيد تبلغ 0(1).

الحلقة في السطور 01-05 لها تعقيد في الترتيب على)،حلقات متداخلة في السطور 06-11 - ترتيب 0(ن 2).التعقيد النهائي للخوارزمية هو من الترتيب

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