نظرية التعقيد الحسابي
نظرية التعقيد هي فرع من فروع نظرية الحوسبة في علم الحاسوب النظري والرياضيات، وهذه النظرية تتركز في تصنيف المسائل الحاسوبية حسب صعوبتها وكذلك تُعنى في ربط أقسام التعقيد (complexity classes) ببعضها، والمسألة الحاسوبية هي مسألة يستطيع الحاسوب حلها.
ويمكن اعتبار مسألة صعبة اذا استخدمت كمية مُعينة من الموارد أيا كانت ومهما كانت الخوارزمية. ولعل النماذج الحسابية هي الطريقة الأمثل في هذه النظرية لدراسة هذه المسائل وتحديد كمية الموارد اللازمة مثل: الوقت أو حجم المكان الاضافي اللازم. ويوجد كذلك معايير تعقيد أخرى مثل: الاتصال (مستخدم في نظرية تعقيد الاتصال) وعدد البوابات في الدارات المنطقية ( مُستخدم في نظرية تعقيد الدارات المنطقية) وكذلك عدد المعالجات (مستخدم في الحساب المتوازي). وأحد أهم اساسات نظرية التعقيد الحسابي هي تبيين الحدود العملية لما يستطيع الحاسوب القيام به وما لا يستطيع القيام به .
المجالات القريبة في علم الحاسوب النظري هي تحليل الخوارزميات ونظرية الحاسوبية. ولعل الاختلاف بين تحليل الخوارزميات ونظرية التعقيد الحسابية هو أن الأول يسأل عن خوارزمية معينة لحل مسألة بينما الاخر يسأل عن كل الخوارزميات التي يمكنها حل المسألة وبالتحديد فان الأخير يحاول تصنيف المسائل التي يمكن حلها أو عدم حلها بوضع كمية مُحددة من الموارد، اما وضع الحدود للموارد الموجودة هو ما يميز نظرية التعقيد الحسابي عن نظرية الحاسوبية أي أن نظرية الحاسوبية تسأل عن أية مسائل يمكن حلها (او عدم حلها) بواسطة خوارزمية.
بشكل عام مُدخل(instance) لمسألة حاسوبية هو مجموعة معطيات formula_1 والمسألة الحاسوبية هي حساب دالة متعلقة بهذه المعطيات . مثال حساب المُحدد لمصفوفة : المُدخلات لهذه المسألة هي القيم في المصفوفة والمُخرج هو المُحدد . وقد يُنظر إلى المسألة على انها مجموعة كل المدخلات والمُخرج الملائم للمُدخل . أما انه يمكن ان تكون المدخلات بأطوال مختلفة وطول المُدخل هو كمية البتات اللازمة لترميز المُدخل بشكل ملائم اي أن المُدخل يكون سلسلة (string) تابعة ل- formula_2 مثال يمكن ترميز العدد (مثال 15 ) بواسطة تمثيله بنظام العد الثنائي ( الترميز الملائم ل-15 هو 1111),مثال اخر هو ترميز مخطط والذي يمكن ترميزه بواسطة القيم في المصفوفة الملائمة له .
مسألة التقرير هي نوع خاص من المسائل الحاسوبية التي جوابها يكون إما نعم او لا او 0 و- 1 وهذا النوع من المسائل يُعرف أيضا باللغات في حين أن الأعضاء التابعة لهذه اللغة هي المُدخلات التي جوابها نعم . والهدف يكون باعطائنا مُدخل يجب التقرير اذا ما المُدخل عضو في هذه اللغة او لا وذلك بواسطة خوارزمية , مثال : فلتكن مسألة تقرير اذا ما عدد معطى هو أولي اللغة هي كل الاعداد الاولية ولتقرير اذا ما مُدخل معين هو أولي نشغل الخوارزمية التالية : "فحص كل الاعداد من 2 حتى هذا العدد وفحص اذا ما هذا العدد يمكن يقبل القسمة على اي عدد غير نفسه اذا نعم فالعدد ليس اوليا وخلاف ذلك العدد اولي" . 
مسائل دالة(function problem) هي مسائل التي لكل مُدخل يكون هنالك مُخرج وحيد وتختلف هذه المسائل عن مسائل التقرير في انها قد يكون مُخرجها غير الاجابة بنعم ولا . مثال : تحليل لعوامل اولية ,المُدخل هو عدد المخرج هو التحليل لعوامل لهذا العدد . وقد يُعتقد أن مسائل الدالة اغنى من مسائل التقرير ولكن هذا غير صحيح بالضرورة إذ انه يمكن تحويل كل مسألة دالة لمسألة تقرير مثال : تحليل لعوامل اولية , المدخل : عدد , x, وقائمة اعداد, x,x...,x والمخرج هو نعم فقط اذا حاصل ضرب الاعداد هو ,x, وبالاضافة كل عدد بالقائمة هو اولي . 
لقياس صعوبة مسألة حاسوبية , وَجَب على المرئ ان يقيس الوقت اللازم لافضل خوارزمية تحل المسألة . وبشكل عام الوقت قد يرتبط بطول المُدخل وبالتحديد مُدخلات طويلة حتما ستحتاج أكثر وقت للوصول للحل ,لذا فان قياس الوقت اللازم لحل مسألة هو دالة بطول المُدخل , وبشكل عام طول المُدخل يكون بالبتات . لذا فان علم التعقيد بالاساس يبحث مدى قابلية توسع الخوارزمية .
فلنفرض أنَّ n هو طول المُدخل حينها الوقت اللازم للخوارزمية يمكن التعبير عنه بواسطة n , وبما أنَّ لكل مُدخل قد يكون الوقت اللازم لحل المسألة مختلف لذا فانه يُأخذ بالاعتبار تعقيد وقت الحالة الأسوأ , (T(n , والذي هو الوقت الأطول الذي ستحتاجه الخوارزمية بالنسبة لكل المُدخلات . اذا كان (T(n متعدد الحدود اي : يوجد ثابت c>0 بحيث أنَّ (T(n)=O(n حينها نقول أنَّ الخوارزمية وقتها متعددة الحدود (polynomial time algorithm) . اطروحة كوبهام تقترح أن مسألة يمكن حلها مع كمية معقولة من الموارد اذا يوجد خوارزمية تحلها بوقت متعدد الحدود .
وهي محاكاة نظرية لفكرة الحاسوب اي أنَّ النموذج الحاسوبي هو آلة وهي التي تقوم بعمليات أساسية (قد تختلف من نموذج لآخر) ونظرية التعقيد تسأل عن مجموعة العمليات الأصغر التي يمكنها حل المسألة، وأكثر النماذج شيوعا في نظرية التعقيد هي آلة تيورنج وهي آلة حاسوبية تعالج رموز مكتوبة على شريط العمليات وهذا النموذج قد لا يكون عملي ولكن هناك ايمان إذا ما مسألة يمكن حلها بواسطة خوارزمية ما فحينها يمكن حل هذه المسألة بواسطة آلة تيورنج، وهذه الفرضية كانت المقال الأساسي في اطروحة تشيرش-تيورنج، وحسب ما هو معلوم كل ما يمكن حسابهُ بواسطة نماذج أخرى يمكن حسابه كذلك بواسطة آلة تيورنج. ولهذا السبب فان هذه الآلة هي الأكثر شيوعا في نظرية التعقيد. وأكثر النماذج الحاسوبية المستخدمة هي: 
ولكي يكون قياس التعقيد , والذي هو استخدام كمية مُعينة من الموارد مثل : الوقت او المكان , دقيقا ومُعرفا بشكل رياضياتي سليم كانت الحاجة للنماذج الحاسوبية مثال : آلة تيورنج , وقد نعرف الوقت اللازم لحل مسألة بواسطة آلة تيورنج ,M , مع المدخل للالة ,x, هو عدد الخطوات او التحول من وضعية لوضعية اللازمة للالة حتى التوقف والاتيان بالنتيجة ( مثل : نعم او لا ) . ونقول أنَّ آلة تيورنج , M , وقت عملها هو (f(n اذا كان الوقت اللازم للالة M على كل مُدخل طولة n هو (f(n . ونقول أنَّ مسألة يمكن حلها بوقت (f(n اذا يوجد آلة تيورنج M الوقت الذي تحتاجه لحل مُدخل طوله n هو (f(n . وبما أنَّ نظرية التعقيد اهتمامها بتصنيف المسائل حسب صعوبتها لذا فالمرئ يمكنه تعريف مجموعة مسائل تحقق معيار مُعين مثال ذلك المجموعة ((DTIME(f(n وهي مجموعة المسائل التي يوجد آلة تيورنج قطعية التي تحلها بوقت (f(n .
هنالك عدة مقاييس للتعقيد ولعل اهمها هو الوقت والمكان , ولعل بديهيات بلم (Blum axioms) في نظرية التعقيد تُعرف هذه المقاييس . مقاييس اخرى مُستخدمة في نظرية التعقيد هي تعقيد الاتصال وتعقيد الدارات المنطقية وتعقيد شجرة التقرير . وبشكل عام في قياس تعقيد الخوارزميات شاع استخدام رمز O الكبير . 
تعقيد الحالة الأفضل والحالة الأسوأ والمتوسطة هي ثلاث طرق مختلفة لقياس تعقيد الوقت (او اي مقياس اخر) لمُدخلات مُختلفة من نفس الطول , وبما أنه باختلاف المُدخلات قد تكون بعض المُدخلات حلها اسرع من الاخريات لذا نعرف التالي : 
لكي نصنف الوقت الحسابي للمسائل (اي الوقت اللازم لحل مسألة بواسطة نموذج حاسوبي مُعين) يجب على الشخص ان يبرهن الحدود الدنيا والعليا لكمية الوقت الاقل التي تستلزمها أفضل خوارزمية لحل المسألة , وبشكل عام تعقيد الخوارزمية هو تعقيد الحالة الأسوأ الا اذا حُدد غير ذلك , ولكي نبرهن أن لمسألة حد أعلى (T(n وجب تبيين خوارزمية التي تستلزم وقت (T(n . ولكن لكي نبرهن حد ادنى المهمة أصعب بكثير إذ على المرء أن يبين ان كل خوارزمية ممكنة لحل المسألة لا يوجد أي منها وقتها اقل من (T(n . وللتوضيح : عندما نقول " كل خوارزمية " نعني أنه لا يمكن أن يكون هناك خوارزمية التي تستلزم وقتا اقل من (T(n حتى في المستقبل . والحدود الدنيا والعليا لمسألة يُعبر عنها بواسطة رمز O كبير .
قسم تعقيد هو مجموعة مسائل التي لها نفس التعقيد , وقد تعرف اقسام التعقيد حسب العوامل التالية :
هنالك تصنيفات أكثر تعقيدا من هذه المذكورة هنا مثل آلة تيورنج احتمالية , الالات تيورنج تفاعلية , مسائل اتصال , ... 
كثير من اقسام التعقيد يمكن تعريفها بواسطة تحديد الوقت او المكان التي تستخدمها الخوارزمية وفي هذا السياق يمكن تعريف بعض الاقسام كالتالي : 
لقد تبين أنَّ formula_3 وكذلك : formula_4 و formula_5 وهذا كله بواسطة مبرهنة سافيتش (Savitch theorem) .
اقسام مهمة اخرى من ضمنها ZPP , BPP ,Co-RP,RP وهي تستخدم آلة تيورنج احتمالية في تعريفها , اما BQP و- QMA ففيهما استخدم آلة تيورنج كمومية اما NC و- AC وكذلك P/Poly تعرف بواسطة الدارات المنطقية اما بالنسبة ل-P# فهو قسم مسائل عد واحد اهمها على الإطلاق , اقسام مثل IP و-AM تستخدم نظام براهين تفاعلي . ALL هو قسم كل المسائل .
فلتكن formula_6 نقول أنَّ formula_7 مسألة formula_8 كاملة اذا تحقق :
نسمي formula_11 قسم اللغات التي هي NP كاملة. بشكل مشابه يمكن تعريف مسائل كاملة في كل قسم لغات مثل : formula_12 .
إنَّ المسائل الكاملة تُعتبر "مسائل صعبة" بمفهوم انه لو وُجد حل بوقت حدودي لاحداها هذا يعني أنَّ كل المسائل فيformula_13 يمكن حلها بوقت حدودي . النظرية التالية تشرح هذا الامر :
الاكتفاء (مسماة بالإنجليزية SAT) مسألة NP كاملة. وقد كانت هذه أول لغة يُبرهن انها NP كاملة . واهميتها كانت بانها الشرارة التي اوقدت نظرية التعقيد الحسابي والسعي وراء النماذج الحسابية المختلفة , بعد أن تم برهنة أنَّ مسألة الاكتفاء هي NP كاملة تبين أنَّ الالاف المسائل هي أيضا كذلك .
ولعل أهم المسائل كاملة هي :
هذه المبرهنات تعتبر نتائج اساسية التي بواسطتها يمكن فصل اقسام التعقيد , والحدس خلف هذه المبرهنات هو أنك اذا كان عندك موارد أكثر باستطاعتك ان تفعل أكثر , ولهذه المبرهنات عدة نصوص إذ أنَّه لكل مورد ومقياس تعقيد يوجد نص خاص به ونُدرج بعض هذه :
ونتيجة لهذه المبرهنات فاننا نحصل على : formula_16 وكذلك :formula_17 وكذلك : formula_18 , كما أن هذه المبرهنات بشكل ما تناقض اطروحة ادموندز- كوبهام إذ انه هذا يعني أنَّ هنالك مسائل لا يمكن حلها بوقت اقل من formula_19 وبشكل واضح هذا الوقت يُعتبر غير واقعي وغير قابل للوصول حتى بالنسبة ل- n=2 !
الاختصار(reduction) هو وسيلة لنقل مسألة إلى مسألة اخرى بحيث انه يمكن الاستعانة بحل المسألة الثانية لحل المسألة الاولى . وقد شاع استخدام هذه الاختصارات في الحياة اليومية , مثال واضح على هذا هو لنفرض اننا نريد ان نجد شارع في مدينة مُعينة لعل هذا يكون أسهل لو كان معنا خريطة اذا فاننا اذا استخدمنا الخريطة نكون بهذا قد اختصرنا مسألة ايجاد الشارع في المدينة لايجاد الشارع في الخريطة والتي حتما ستكون أسهل . وبالعادة في الاختصارات عندنا مسألتين A و- B اذا فرضنا أنَّ B يمكن اختصارها ل-A حينها حل المسألة A يمكن الاستعانة به لحل المسألة B , ولننظر إلى المسائل التالية :
يمكن رؤية ان كل واحدة من المسائل يمكن اختصارها للاخرى بالشكل التالي : اذا حللنا مسألة ايجاد عمل حينها يمكن جمع النقود لشراء التذكرة من اسطنبول إلى مكة في الوقت الذي جمعنا فيه مالا كافيا لشراء التذكرة يمكن حينها شراء التذكرة واخيرا السفر إلى مكة من اسطنبول .
كما ان الاختصارات تظهر كذلك في المسائل الرياضية مثل : قياس مساحة الدائرة يمكن اختصاره لايجاد طول نصف القُطُر , كما انه يمكن اختصار حل هيئة معادلات خطية لعكس مصفوفة. يظهر الاختصار في كثير من المجالات في الرياضيات وذلك لانه بواسطة الاختصارات يمكن تصنيف مسائل الرياضيات إذ انه اذا يمكن اختصار مسألة A للمسألة B حينها المسألة A لا يمكن ان تكون أصعب من المسألة B وهذه النظرة اخذها علوم الحاسوب لتصنيف الخوارزميات وقد تمكن علماء الحاسوب بناء نظرية التعقيد الحسابي بواسطة هذه الاداة .
يوجد عدة انواع من الاختصارات ومنها :
ظهرت مسائل في نظرية التعقيد ولعلها من أهم المسائل في الالفية , حيث ان تطور العلوم بشكل عام سيكون اسرع لو كان لها حل . أهم هذه المسائل هي : 
من السهل ملاحظة أن المسائل الحتمية الحدودية (P) هي ضمن المسائل غير حتمية حدودية (NP), لكن المسألة المقابلة والتي تسأل هل مجموعة المسائل غير حتمية مجموعة جزئية لمجموعة المسائل الحتمية ؟ ولم يتمكن من الجواب عنها علماء المعلوميات منذ سنة 1971 إلى الآن هو هل هناك تساو أو اختلاف بين المجموعتين ؟ وقد عُرض عام 2000 مكافئة قدرها مليون دولار لمن يحل المسألة وذلك بواسطة معهد كلاي .
تلقي هذه المسألة بظلها على كل مجالات العلوم الحديثة ولحل هذه المسألة اهمية بالغة على تطور مجال علم التشفير او انتكاسه حيث انه لو NP=P حينها علم التشفير الحديث لن يكون له اي اهمية من الناحية النظرية ! ولكن لو تحقق هذا فان مجال تصميم الشرائح الالكترونية , تحليل الصور الرقمية , الذكاء الصناعي ... وغيرها من المجالات ستتطور لتكون في أقصى تطورها . 
لقد بيَّن لاندر انه في حال انه formula_49 حينها يوجد مسائل التي لا تتبع P ولا تتبع NP كاملة , للان لم يبرهن أحد على وجود مثل هذه المسائل ولكن هنالك حدسيات عن بعض المسائل التي محتمل جدا ان تكون كذلك منها : تحليل لعوامل , تطابق المخططات (graph isomorphism) , ...