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

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

في كلتا الحالتين، يتم التعبير عن تعقيد الوقت بشكل عام كدالة لحجم المدخلات. :226:226

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

{\displaystyle O(n\log n),} {\displaystyle O(n^{\alpha }),} {\displaystyle O(2^{n}),}بت

يتم تصنيف تعقيدات الخوارزمية بواسطة الدالة التي تظهر في تدوين O الكبير. على سبيل المثال، خوارزمية ذات تعقيد زمني هي *خوارزمية زمنية خطية* ، خوارزمية مع تعقيد زمني لبعض الثابت هي *خوارزمية زمن متعددة الحدود* .{\displaystyle O(n)}'**{\displaystyle O(n^{\alpha })}{\displaystyle \alpha \geq 1}'**

جدول التعقيدات الزمنية الشائعة
------------------------------

يلخص الجدول التالي بعض فئات التعقيدات الزمنية الشائعة. في الجدول، poly (*x*)  = *x* *O* (1) ، أي كثيرات الحدود في *x* . '**'**'

| اسم | فئة التعقيد | وقت التشغيل (*T* (*n*)) | أمثلة على أوقات التشغيل | خوارزميات المثال |
| --- | --- | --- | --- | --- |
| وقت ثابت | *يا* (1) | 10 | تحديد ما إذا كان عدد صحيح (يمثل في ثنائي) حتى أو فردي |
| معكوس أكرمان الوقت | *O* (*α* (*n*)) | الوقت المستهلك لكل عملية باستخدام مجموعة منفصلة |
| الوقت لوغاريتمي تكررت | *يا* (سجل \* *ن*) | التلوين الموزع للدورات |
| تسجيل-وغاريتمي | *يا* (سجل الدخول *ن*) | الوقت المستهلك لكل عملية باستخدام قائمة انتظار ذات أولوية محددة |
| وقت لوغاريتمي | DLOGTIME | *يا* (سجل *ن*) ' | log *n* ، log (*n* 2)  | بحث ثنائي |
| الوقت polylogarithmic | بولي (سجل *ن*) ' | (السجل *ن*) 2 ' |
| قوة كسرية | *يا* (*ن* ج)حيث 0 < c < 1 | *ن* 1/2 ، *ن* 2/3 | البحث في شجرة دينار |
| الوقت الخطي | *يا* (*ن*) | *ن* | العثور على أصغر أو أكبر عنصر في مصفوفة لم يتم فرزهامصفوفة |
| "n log star n" time | *يا* (*ن* السجل \*  *ن*) | خوارزمية التثليث المضلع ل Seidel. |
| الوقت quasilinear | *O* (*n*  log *n*) ' | *ن*  تسجيل *ن* ، سجل *ن* !  | أسرع وقت ممكن مقارنة الفرز. تحويل فورييه السريع. |
| الوقت التربيعي | *يا* (*ن* 2) | *n*2 | نوع فقاعة. نوع الإدراج. الالتواء المباشر |
| الوقت مكعب | *يا* (*ن* 3) | *n*3 | الضرب السذاجة اثنين *ن* × *ن* المصفوفات. حساب الارتباط الجزئي. |
| وقت البولينمال | P | 2 *O* (log *n*) ' **= poly (*n*)** | *n* ، *n*  log *n* ، *n* 10  | خوارزمية Karmarkar في ل البرمجة الخطية. اختبار البدائية AKS |
| زمن شبه كثير الحدود | QP | 2 بولي (log *n*) ' | *n* log  log *n* ' **، *n* log *n* '** | أفضل O (سجل 2  *n*) - خوارزمية تقريب لمشكلة شجرة ستاينر الموجهة. |
| الوقت الأسى الفرعي 
(التعريف الأول) | SUBEXP | *O* (2 *n* *ε*) لجميع *ε*  >  0 | *O* *ن* (2 عجلة الاطارات عجلة *ن*'**'**) | على افتراض افتراضات التعقيد النظرية، ويرد BPP في SUBEXP. |
| الوقت الأسى الفرعي 
(التعريف الثاني) | 2 *س* (*ن*) | 2*n*1/3 | الخوارزمية الأكثر شهرة ل توكيل تجاري صحيح والتماثل الرسم البياني |
| الوقت الأسي 
(مع الأس الخطي) | E | 2 *س* (*ن*) | 1.1 *ن* ، 10 *ن* | حل مشكلة مندوب المبيعات باستخدام البرمجة الديناميكية |
| الوقت الأسي | EXPTIME | 2 بولي (*ن*) | 2*n*, 2*n*2 | حل مضاعفة سلسلة مصفوفة عن طريق البحث الغاشمة |
| الوقت مضروبة | *يا* (*ن* !) | *ن* ! | حل مشكلة مندوب المبيعات عبر البحث عن القوة الغاشمة |
| ضعف الوقت الأسي | 2-EXPTIME | 2 2 بولي (*ن*) | 22*n* | تقرير حقيقة بيان معين في حساب بيرسبيرغر |

وقت ثابت
--------

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

على الرغم من الاسم «وقت ثابت»، لا يجب أن يكون وقت التشغيل مستقلة عن حجم المشكلة ولكن يجب تقييد حد الأعلى وقت التشغيل بشكل مستقل عن حجم المشكلة. على سبيل المثال، فإن مهمة «تبادل قيم *و* و *ب* إذا لزم الأمر بحيث *ل* ≤ *ب*» ويسمى وقت ثابت على الرغم من أن الوقت قد يعتمد على ما إذا كان صحيحا أن بالفعل *على* ≤ *ب*. ومع ذلك، هناك بعض *t* مثل ثابت أن الوقت المطلوب هو دائما *على الأكثر*  *t* .

```
int index = 5؛
int item = list [index]؛
**إذا** (شرط صحيح) **ثم**
تنفيذ بعض العمليات التي تعمل في وقت ثابت
**آخر**
تنفيذ بعض العمليات الأخرى التي تعمل في وقت ثابت
**ل** i = 1 **إلى** 100
**لـ** j = 1 **to** 200
تنفيذ بعض العمليات التي تعمل في وقت ثابت
```

إذا كانت *T* (*n*) هي O (*أي قيمة ثابتة*)، فهذا يعادل ويقال في الترميز القياسي على أنه *T* (*n*) يجري O (1).

وقت لوغاريتمي
-------------

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

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

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

يتم إعطاء مثال على الوقت اللوغاريتمي عن طريق البحث في القاموس. دعنا نفكر في قاموس يحتوي على مداخل *n* ، مرتبة حسب الترتيب الأبجدي. نحن نفترض أنه، بالنسبة لـ 1 ≤ *k* ≤ *n*

1 ≤ *k* ≤ *n*، يمكن للمرء الوصول إلى دخول ال k من القاموس في وقت ثابت. دعونا *D*[*k*] دلالة هذا ك دخول عشر. بموجب هذه الفرضيات، يمكن إجراء الاختبار إذا كانت الكلمة D في القاموس في زمن لوغاريتمي: فكر في المكان الذي يشير إلى دالة الكلمة. إذا تم الانتهاء من ذلك. عدا ذلك، إذا استمر البحث بنفس الطريقة في النصف الأيسر من القاموس، وإلا استمر بالمثل مع النصف الأيمن من القاموس. تشبه هذه الخوارزمية الطريقة المستخدمة غالبًا للعثور على إدخال في قاموس ورقي.{\displaystyle D(\lfloor n/2\rfloor ),}{\displaystyle \lfloor \;\rfloor }دالتا الجزء الصحيح و السقف{\displaystyle D=D(\lfloor n/2\rfloor ),}{\displaystyle D<D(\lfloor n/2\rfloor ),}

الوقت polylogarithmic
---------------------

ويقال إن الخوارزمية تعمل في **زمن** polylogarithmic **إذا كانت *T* (*n*) = O ((log *n*) *k*)، لبعض *k* الثابت. على سبيل المثال، يمكن حل ترتيب سلسلة المصفوفات في وقت polylogarithmic على جهاز الوصول العشوائي الموازي.**

الوقت الفرعي الخطي
------------------

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

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

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

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

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

الوقت الخطي
-----------

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

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

الوقت شبه الخطي
---------------

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

* فرز الموضعي الموضعي، O (*n* log *2*  *n*)
* Quicksort ، O (*n* log *n*)، في نسخته العشوائية، لديه وقت تشغيل هو O (*n* log *n*) في توقع على مدخلات الحالة الأسوأ. تحتوي النسخة غير العشوائية على وقت تشغيل O (*n* log *n*) فقط عند النظر في متوسط تعقيد الحالات.
* Heapsort ، O (*n* log *n*)، merge sort ، introsort ، binary tree sort، smoothsort ، sortience sorting ، etc. in worst worst
* تحويلات فورييه السريعة، O (*n* log *n*)
* حساب مجموعة monge ، O (*n* log *n*)

في كثير من الحالات، *ن* · تسجيل *ن* إدارة الوقت هو ببساطة نتيجة أداء وΘ (سجل *ن*) عملية *ن* مرات (للتدوين، انظر تمثيل O الكبرى § Family of Bachmann–Landau notations). على سبيل المثال، يؤدي فرز الشجرة الثنائية إلى إنشاء شجرة ثنائية عن طريق إدخال كل عنصر في الصفيف n-sized واحدًا تلو الآخر. نظرًا لأن عملية الإدراج على شجرة بحث ثنائية التوازن الذاتي تأخذ وقت *O* (log *n*)، فإن الخوارزمية بأكملها تأخذ *O* (*n* log *n*) time.

تتطلب أنواع المقارنة عدد المقارنات *O* (*n* log *n*) على الأقل في أسوأ الحالات لأن log (*n* !) = Θ (*n* log *n*)، بواسطة تقريب ستيرلنغ Stirling. كما أنها تنشأ في كثير من الأحيان من علاقة التكرار *T* (*n*) = 2 *T* (*n* / 2) + *O* (*n*).

الوقت شبه التربيعي
------------------

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

وقت البولينمال
--------------

ويقال إن الخوارزمية تكون ذات **زمن متعدد الحدود** إذا كان **وقت** تشغيلها هو الحد الأعلى بواسطة تعبير كثير الحدود في حجم دخل الخوارزمية، أي *T* (*n*) = O (*n* *k*) لبعض *k* الثابت. تنتمي المشاكل التي توجد لها خوارزمية زمنية حتمية متعددة الحدود إلى فئة التعقيد **P** ، التي تعتبر مركزية في مجال نظرية التعقيد الحسابي. تنص أطروحة كوبهام أن زمن كثير الحدود هو مرادف لـ "tractable" أو «مجدي» أو «فعال» أو «سريع».

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

* واختيار نوع خوارزمية الفرز على *ن* صحيحة ينفذ عمليات لبعض المستمر *و*. وبالتالي فإنه يعمل في الوقت المناسب وهو خوارزمية متعددة الحدود الزمنية.{\displaystyle An^{2}}'**{\displaystyle O(n^{2})}**
* يمكن تنفيذ جميع العمليات الحسابية الأساسية (الجمع والطرح والضرب والقسمة والمقارنة) في زمن كثير الحدود.
* يمكن العثور على الحد الأقصى من التطابقات في الرسوم البيانية في وقت كثير الحدود.

### بقوة وضيق كثير الحدود

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

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

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

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

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

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

### دروس التعقيد

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

* **P** : إنقسم تعقيد من المشاكل القرار لا يمكن حلها علىآلة تورنج حتمية في الوقت متعدد الحدود.
* **NP** : فئة تعقيد مشاكل القرار التي يمكن حلها على آلة تورينج غير حتمية في زمن كثير الحدود.
* **ZPP** : فئة تعقيد مشكلات القرار التي يمكن حلها بدون أي خطأ على جهاز Turing احتمالي في زمن كثير الحدود.
* **RP** : فئة تعقيد مشاكل القرار التي يمكن حلها مع خطأ من جانب واحد على جهاز Turing احتمالي في زمن كثير الحدود.
* **BPP** : فئة تعقيد مشاكل القرار التي يمكن حلها مع وجود خطأ من جانبين على جهاز Turing احتمالي في زمن كثير الحدود.
* **BQP** : فئة تعقيد مشاكل القرار التي يمكن حلها مع وجود خطأ على الوجهين علىآلة تورينج الكمومية في زمن كثير الحدود.

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

وقت حافل جدا
------------

يقال أن الخوارزمية تأخذ وقتاً **حافلاً جداً** إذا لم تكن *T* (*n*) مقيدة أعلاه بواسطة أي متعدد الحدود. وباستخدام تدوين أوميجا قليل، يكون الوقت ω (*n* *c*) لجميع الثوابت *c* ، حيث *n* هي معلمة الدخل، وهي عادة عدد البتات في المدخلات.

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

الخوارزمية التي تستخدم موارد أسيّة هي حُرّية فائقة بشكل واضح، لكن بعض الخوارزميات ليست سوى مجرد خوارزميات سطحية جدًّا. على سبيل المثال، يتم تشغيل اختبار Adleman – Pomerance – Rumely البدائي لـ *n* o (log log *n*) على مدخلات *n* -bit ؛ هذا ينمو أسرع من أي متعدد الحدود لأكبر ما يكفي من *n* ، ولكن يجب أن يصبح حجم المدخلات كبيرًا بشكل غير عملي قبل أن لا يمكن السيطرة عليه بواسطة كثير الحدود بدرجة صغيرة.

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

زمن شبه كثير الحدود
-------------------

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

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

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

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

{\displaystyle {\mbox{QP}}=\bigcup \_{c\in \mathbb {N} }{\mbox{DTIME}}(2^{(\log n)^{c}})}
### العلاقة مع NP- مشاكل كاملة

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

الوقت الأسى الفرعي
------------------

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

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

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

{\displaystyle {\text{SUBEXP}}=\bigcap \_{\varepsilon >0}{\text{DTIME}}\left(2^{n^{\varepsilon }}\right)}
لاحظ أن هذا المفهوم للأسي الأسى غير منتظم من حيث ε بمعنى أن ε ليس جزءًا من المدخلات وقد يكون لكل have خوارزمية خاصة به لهذه المشكلة.

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

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

لاحظ أنه يحدث فرقًا ما إذا كان يُسمح للخوارزمية أن تكون أسيةً فرعيةً في حجم المثيل ، أو عدد الرؤوس ، أو عدد الحواف. في التعقيد المعلمات ، يتم توضيح هذا الاختلاف عن طريق النظر في أزواج من مشاكل القرار والمعلمات *k*. {\displaystyle (L,k)}'**SUBEPT** هو فئة جميع المشاكل المعلمات التي تعمل في الوقت الأسي الفرعي في *k* ومتعدّد الحدود في حجم المدخلات *n* :

{\displaystyle {\text{SUBEPT}}={\text{DTIME}}\left(2^{o(k)}\cdot {\text{poly}}(n)\right).}
بتعبير أدق ، SUBEPT هو فئة من جميع المشاكل المعلمات التي لها دالة حسابية مع خوارزمية تقرر *L* في الوقت المناسب .{\displaystyle (L,k)}دوال حسابية {\displaystyle f:\mathbb {N} \to \mathbb {N} }{\displaystyle f\in o(k)}'**{\displaystyle 2^{f(k)}\cdot {\text{poly}}(n)}**

#### فرضية الزمن الأسي

على **فرضية الوقت الأسي** (**ETH**) هي أن 3SAT ، والمشكلة satisfiability من الصيغ المنطقية في نموذج عطف نظامي مع، على الأكثر، وثلاث الحرفية في بند ومع *ن* المتغيرات، لا يمكن حلها في الوقت المناسب 2 *س* (*ن*). بتعبير أدق ، فإن الفرضية هي أن هناك بعض الثابت المطلق *c* > 0

بحيث لا يمكن تحديد 3SAT في الوقت المناسب 2 *CN من* قبل أي آلة تورينج حتمية. من خلال *m* تشير إلى عدد الفقرات ، تعادل ETH الفرضية القائلة بأنه لا يمكن حل *k* SAT في الوقت 2 *o* (*m*) لأي عدد صحيح *k* ≥ 3. تعني الفرضية الزمنية الأسية P ≠ NP .

الوقت الأسي
-----------

يقال أن الخوارزمية هي **وقت أسي** ، إذا كانت *T* (*n*) أعلى من 2 poly (*n*) ، حيث يكون poly (*n*) متعدد الحدود في *n*. بشكل أكثر رسمية ، الخوارزمية هي وقت أسي إذا كانت *T* (*n*) يحدها O (2 *n* *k*) لبعض *k* الثابت. المشاكل التي تعترف خوارزميات الأسيّة الزمنية على آلة تورنج حتمية تشكل فئة التعقيد المعروفة بـ **EXPTIME** .

{\displaystyle {\text{EXP}}=\bigcup \_{c\in \mathbb {N} }{\text{DTIME}}\left(2^{n^{c}}\right)}
في بعض الأحيان ، يتم استخدام الزمن الأسي للرجوع إلى الخوارزميات التي تحتوي على *T* (*n*) = 2 O (*n*) ، حيث تكون الأسس على الأغلب دالة خطية لـ *n*. وهذا يثير الطبقة تعقيد **E** .

{\displaystyle {\text{E}}=\bigcup \_{c\in \mathbb {N} }{\text{DTIME}}\left(2^{cn}\right)}

ضعف الوقت الأسي
---------------

يقال أن الخوارزمية تكون مزدوجة الأسيّة إذا كانت *T* (*n*) أعلى من 2 2 بولي (*n*) ، حيث تكون poly (*n*) متعددة الحدود في *n*. تنتمي هذه الخوارزميات إلى فئة التعقيد 2-EXPTIME .

{\displaystyle {\mbox{2-EXPTIME}}=\bigcup \_{c\in \mathbb {N} }{\mbox{DTIME}}\left(2^{2^{n^{c}}}\right)}
تتضمن خوارزميات الوقت الأسية المعروفة جيداً:

* إجراءات اتخاذ القرار في حساب برغر بيرجر
* حساب أساس Gröbner (في أسوأ الحالات )
* يأخذ القضاء على كمية على الحقول المغلقة الحقيقية على الأقل ضعف الوقت الأسي ،  ويمكن القيام به في هذا الوقت.

انظر أيضًا
----------

* L-تصنيف
* تعقيد الفضاء

المراجع
-------

1. ↑  Mehlhorn، Kurt؛ Naher، Stefan (1990). "Bounded ordered dictionaries in O(log log N) time and O(n) space". *Information Processing Letters*. ج. 35 ع. 4: 183–189. DOI:10.1016/0020-0190(90)90022-P.
2. ↑  Bradford، Phillip G.؛ Rawlins، Gregory J. E.؛ Shannon، Gregory E. (1998). "Efficient Matrix Chain Ordering in Polylog Time". *SIAM Journal on Computing*. Philadelphia: Society for Industrial and Applied Mathematics. ج. 27 ع. 2: 466–490. DOI:10.1137/S0097539794270698. ISSN:1095-7111.
3. ↑  Kumar، Ravi؛ Rubinfeld، Ronitt (2003). "Sublinear time algorithms" (PDF). *SIGACT News*. ج. 34 ع. 4: 57–67. DOI:10.1145/954092.954103. مؤرشف من الأصل (PDF) في 2016-03-03.
4. ↑  Naik، Ashish V.؛ Regan، Kenneth W.؛ Sivakumar، D. (1995). "On Quasilinear Time Complexity Theory" (PDF). *Theoretical Computer Science*. ج. 148: 325–349. DOI:10.1016/0304-3975(95)00031-q. مؤرشف من الأصل (PDF) في 2017-08-10. اطلع عليه بتاريخ 2015-02-23.
5. ↑  Sedgewick، R. and Wayne K (2011). الخوارزميات ، الطبعة الرابعة. ص. 186. بيرسون التعليم ، وشركة نسخة محفوظة 24 يناير 2018 على موقع واي باك مشين.
6. ↑  Sipser، Michael (2006). *Introduction to the Theory of Computation*. Course Technology Inc. ISBN:0-619-21764-2.
7. ↑  Papadimitriou، Christos H. (1994). *Computational complexity*. Reading, Mass.: Addison-Wesley. ISBN:0-201-53082-1.
8. ↑  Cobham، Alan (1965). "The intrinsic computational difficulty of functions". *Proc. Logic, Methodology, and Philosophy of Science II*. North Holland.
9. ↑  Grötschel، Martin؛ لازلو لوفاز؛ Alexander Schrijver (1988). "Complexity, Oracles, and Numerical Computation". *Geometric Algorithms and Combinatorial Optimization*. Springer. ISBN:0-387-13624-X.
10. ↑  Schrijver، Alexander (2003). "Preliminaries on algorithms and Complexity". *Combinatorial Optimization: Polyhedra and Efficiency*. Springer. ج. 1. ISBN:3-540-44389-4.
11. ↑  Braverman، Mark؛ Ko، Young Kun؛ Rubinstein، Aviad؛ Weinstein، Omri (2015)، *ETH hardness for densest-k-subgraph with perfect completeness*، arXiv:1504.08352
12. ↑  قالب:ComplexityZoo
13. ↑  Impagliazzo، R.؛ Paturi، R. (2001). "On the complexity of k-SAT". *Journal of Computer and System Sciences*. إلزيفير. ج. 62 ع. 2: 367–375. DOI:10.1006/jcss.2000.1727. ISSN:1090-2724.
14. ↑  Aaronson, Scott (5 أبريل 2009). "A not-quite-exponential dilemma". *Shtetl-Optimized*. مؤرشف من الأصل في 2019-05-25. اطلع عليه بتاريخ 2009-12-02.
15. ↑  Babai، László؛ Fortnow، Lance؛ Nisan، N.؛ Wigderson، Avi (1993). "BPP has subexponential time simulations unless EXPTIME has publishable proofs". *Computational Complexity*. Berlin, New York: سبرنجر. ج. 3 ع. 4: 307–318. DOI:10.1007/BF01275486.
16. ↑  قالب:ComplexityZoo
17. ↑  Moser، P. (2003). "Baire's Categories on Small Complexity Classes". *Lecture Notes in Computer Science*. Berlin, New York: Springer-Verlag: 333–342. ISSN:0302-9743.
18. ↑  Miltersen، P.B. (2001). "DERANDOMIZING COMPLEXITY CLASSES". *Handbook of Randomized Computing*. Kluwer Academic Pub: 843.
19. ↑  Kuperberg، Greg (2005). "A Subexponential-Time Quantum Algorithm for the Dihedral Hidden Subgroup Problem". *SIAM Journal on Computing*. Philadelphia: Society for Industrial and Applied Mathematics. ج. 35 ع. 1: 188. DOI:10.1137/s0097539703436345. ISSN:1095-7111.
20. ↑  A bot will complete this citation soon. Click here to jump the queue أرخايف:quant-ph/0406151v1.
21. ↑  Flum، Jörg؛ Grohe، Martin (2006). *Parameterized Complexity Theory*. Springer. ص. 417. ISBN:978-3-540-29952-3. مؤرشف من الأصل في 2007-11-18. اطلع عليه بتاريخ 2010-03-05.
22. ↑  Impagliazzo، R.؛ Paturi، R.؛ Zane، F. (2001). "Which problems have strongly exponential complexity?". *Journal of Computer and System Sciences*. ج. 63 ع. 4: 512–530. DOI:10.1006/jcss.2001.1774.
23. ↑  ماير، E. & Mayer، A: The Complexity of Word Problem for Commutative Semi-groups and Colynomial Ideals. *حال. في الرياضيات.* 46 (1982) pp. 305-329
24. ↑  JH Davenport & J. Heintz: Real Quantifier Elimination is Doubly Doubly.
*J. شركات رمزية.* 5 (1988) pp. 29-35.
25. ↑  جنرال الكتريك كولينز: القضاء على المكملة الحقيقية من الحقول المغلقة عن طريق تحلل الجبرية أسطواني. بروك. 2. GI Conference Automata Theory & Formal Languages (Springer Lecture Notes in Computer Science 33) pp. 134-183

* أيقونة بوابةبوابة تقانة
* أيقونة بوابةبوابة علوم
* أيقونة بوابةبوابة علم الحاسوب