التعقيد الحسابي

في علم الحاسوب ، يُعرَّف التعقيد الحسابي ، أو ببساطة تعقيد الخوارزمية، بأنه مقدار الموارد اللازمة لتشغيلها. [ 1 ] ويُركَّز بشكل خاص على وقت الحساب (الذي يُقاس عادةً بعدد العمليات الأساسية المطلوبة) ومتطلبات تخزين الذاكرة . أما تعقيد المسألة، فهو تعقيد أفضل الخوارزميات التي تُتيح حلها.

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

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

موارد

وقت

يُعد الوقت المورد الأكثر شيوعًا في الاعتبار. وعندما يُستخدم مصطلح "التعقيد" دون تحديد، فإنه يعني عمومًا تعقيد الوقت.

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

تعقيد البت

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

فضاء

ومن الموارد المهمة الأخرى حجم ذاكرة الكمبيوتر اللازمة لتشغيل الخوارزميات.

الدائرة

تواصل

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

آحرون

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

في العديد من الخوارزميات، لا يكون حجم الأعداد الصحيحة المستخدمة أثناء الحساب محدودًا، وليس من الواقعي افتراض أن العمليات الحسابية تستغرق وقتًا ثابتًا. لذلك، قد يكون التعقيد الزمني، والذي يُسمى عمومًا تعقيد البت في هذا السياق، أكبر بكثير من التعقيد الحسابي. على سبيل المثال، التعقيد الحسابي لحساب محدد مصفوفة عددية من الرتبة n × n هويا(ن3){\displaystyle O(n^{3})}بالنسبة للخوارزميات المعتادة ( الحذف الغاوسي )، يكون تعقيد البتات لهذه الخوارزميات أُسّيًا بالنسبة لـ n ، لأن حجم المعاملات قد ينمو أُسّيًا أثناء الحساب. من ناحية أخرى، إذا اقترنت هذه الخوارزميات بالحساب متعدد الأنماط ، فقد ينخفض ​​تعقيد البتات إلى Õ ( n⁴ ) .

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

التعقيد كدالة لحجم المدخلات

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

يُعرَّف تعقيد الحالة الأسوأ بأنه الحد الأقصى للتعقيد لجميع المدخلات ذات الحجم n ، بينما يُعرَّف تعقيد الحالة المتوسطة بأنه متوسط ​​التعقيد لجميع المدخلات ذات الحجم n (وهذا منطقي، لأن عدد المدخلات الممكنة لحجم معين محدود). عمومًا، عند استخدام مصطلح "التعقيد" دون تحديده بدقة، يُقصد به تعقيد الحالة الأسوأ.

التعقيد التقاربي

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

لهذه الأسباب، يُركز عادةً على سلوك التعقيد عند قيم n الكبيرة ، أي على سلوكه التقاربي عندما تؤول n إلى اللانهاية. ولذلك، يُعبَّر عن التعقيد عمومًا باستخدام ترميز Big O.

على سبيل المثال، تبلغ تعقيد الخوارزمية المعتادة لضرب الأعداد الصحيحة 10 ...يا(ن2)؛{\displaystyle O(n^{2});}هذا يعني وجود ثابتجu{\displaystyle c_{u}}بحيث يمكن إجراء عملية ضرب عددين صحيحين لا يزيد عدد أرقامهما عن n في وقت أقل منجuن2.{\displaystyle c_{u}n^{2}.}هذا الحد دقيق بمعنى أن تعقيد الحالة الأسوأ وتعقيد الحالة المتوسطة هماΩ(ن2)،{\displaystyle \Omega (n^{2}),}وهذا يعني أن هناك أيضًا ثابتًاجل{\displaystyle c_{l}}بحيث تكون هذه التعقيدات أكبر منجلن2.{\displaystyle c_{l}n^{2}.}لا يظهر الأساس في هذه التعقيدات، لأن تغيير الأساس لا يغير سوى الثوابت .جu{\displaystyle c_{u}}وجل.{\displaystyle c_{l}.}

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

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

النماذج الحتمية

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

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

الحساب غير الحتمي

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

حتى وإن لم يكن نموذج الحساب هذا واقعيًا بعد، فإنه يحمل أهمية نظرية، ترتبط في معظمها بمسألة P = NP ، التي تُشكك في هوية فئات التعقيد المُشكَّلة باعتبار "الوقت متعدد الحدود" و"الوقت متعدد الحدود غير الحتمي" حدودًا عليا. عادةً ما تستغرق محاكاة خوارزمية NP على حاسوب حتمي "وقتًا أُسّيًا". تُصنَّف المسألة ضمن فئة التعقيد NP إذا أمكن حلها في وقت متعدد الحدود على جهاز غير حتمي. تُعتبر المسألة NP-كاملة إذا كانت، بشكل عام، ضمن فئة NP وليست أسهل من أي مسألة NP أخرى. العديد من المسائل التوافقية ، مثل مسألة الحقيبة ، ومسألة البائع المتجول ، ومسألة إرضاء العبارات المنطقية، هي مسائل NP-كاملة. بالنسبة لجميع هذه المسائل، فإن أفضل خوارزمية معروفة لها تعقيد أُسّي. إذا أمكن حل أي من هذه المسائل في وقت متعدد الحدود على جهاز حتمي، فإنه يمكن حل جميع مسائل NP أيضًا في وقت متعدد الحدود، وبالتالي يصبح P = NP. اعتبارًا من عام 2017يُفترض عمومًا أن P ≠ NP، مع ما يترتب على ذلك من آثار عملية مفادها أن أسوأ حالات مشاكل NP يصعب حلها بطبيعتها، أي أنها تستغرق وقتًا أطول من أي فترة زمنية معقولة (عقود!) لأطوال المدخلات المثيرة للاهتمام.

الحوسبة المتوازية والموزعة

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

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

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

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

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

طُوِّرت نظرية التعقيد الكمومي لدراسة فئات التعقيد للمسائل التي تُحل باستخدام الحواسيب الكمومية. وتُستخدم هذه النظرية في التشفير ما بعد الكمومي ، الذي يتضمن تصميم بروتوكولات تشفير مقاومة لهجمات الحواسيب الكمومية.

تعقيد المشكلة

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

ويترتب على ذلك أن كل تعقيد لخوارزمية يتم التعبير عنها باستخدام ترميز Big O ، هو أيضًا حد أعلى لتعقيد المشكلة المقابلة.

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

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

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

حد أدنى غير خطي لـΩ(نسجلن){\displaystyle \Omega (n\log n)}يُعرف هذا بـ عدد المقارنات اللازمة لخوارزمية الفرز . وبالتالي، فإن أفضل خوارزميات الفرز هي خوارزميات مثالية تقاربياً، لأن تعقيدهايا(نسجلن).{\displaystyle O(n\log n).}ينتج هذا الحد الأدنى من حقيقة وجود n ! طريقة لترتيب n عنصرًا. وبما أن كل مقارنة تقسم هذه المجموعة المكونة من n ! ترتيبًا إلى جزأين ، فإن عدد المقارنات N اللازمة لتمييز جميع الترتيبات يجب أن يكون صحيحًا.2شمال>ن!،{\displaystyle 2^{N}>n!,}وهذا يعنيشمال=Ω(نسجلن)،{\displaystyle N=\Omega (n\log n),}باستخدام صيغة ستيرلينغ .

تتمثل إحدى الطرق القياسية لإثبات الحدود الدنيا لتعقيد المسائل في اختزال المسألة إلى مسألة أخرى. بتعبير أدق، لنفترض أنه يمكن ترميز مسألة A ذات حجم n في مسألة فرعية بحجم f ( n ) من مسألة B ، وأن تعقيد A هوΩ(ز(ن)).{\displaystyle \Omega (g(n)).}دون الإخلال بعمومية المسألة، يمكن افتراض أن الدالة f تتزايد مع n ولها دالة عكسية h . عندئذٍ، يكون تعقيد المسألة B هوΩ(ز(ح(ن))).{\displaystyle \Omega (g(h(n))).}هذه هي الطريقة المستخدمة لإثبات أنه إذا كانت P ≠ NP (وهي تخمين لم يُحل بعد)، فإن تعقيد كل مسألة كاملة من فئة NP هوΩ(نك)،{\displaystyle \Omega (n^{k}),}لكل عدد صحيح موجب k .

يُستخدم في تصميم الخوارزميات

يُعد تقييم تعقيد الخوارزمية جزءًا مهمًا من تصميم الخوارزمية ، حيث يوفر هذا معلومات مفيدة حول الأداء المتوقع.

من المفاهيم الخاطئة الشائعة أن تقييم تعقيد الخوارزميات سيصبح أقل أهمية نتيجة لقانون مور ، الذي ينص على النمو الأسي لقدرة الحواسيب الحديثة . هذا غير صحيح، لأن هذه الزيادة في القدرة تسمح بالتعامل مع كميات هائلة من البيانات ( البيانات الضخمة ). على سبيل المثال، عند الرغبة في فرز قائمة تضم بضع مئات من المدخلات أبجديًا، مثل قائمة مراجع كتاب، ينبغي لأي خوارزمية أن تعمل بكفاءة في أقل من ثانية. من ناحية أخرى، بالنسبة لقائمة تضم مليون مدخل (أرقام هواتف مدينة كبيرة، على سبيل المثال)، فإن الخوارزميات الأساسية التي تتطلبيا(ن2){\displaystyle O(n^{2})}سيتطلب إجراء المقارنات تريليون مقارنة، وهو ما سيستغرق حوالي ثلاث ساعات بسرعة 10 ملايين مقارنة في الثانية. من ناحية أخرى، لا تتطلب خوارزميات الفرز السريع والفرز بالدمج سوىنسجل2ن{\displaystyle n\log _{2}n}المقارنات (كمتوسط ​​تعقيد الحالة الأولى، وكأسوأ تعقيد الحالة الثانية). بالنسبة لـ n = 1,000,000 ، ينتج عن ذلك ما يقارب 30,000,000 مقارنة، وهو ما يستغرق 3 ثوانٍ فقط بمعدل 10 ملايين مقارنة في الثانية.

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

انظر أيضاً

مراجع

  1. فادان، ساليل (2011)، "التعقيد الحسابي" (ملف PDF) ، في فان تيلبورغ، هينك سي إيه؛ جاجوديا، سوشيل (محرران)، موسوعة التشفير والأمن ، سبرينغر، ص 235-240 ، doi : 10.1007/978-1-4419-5906-5_442 ، ISBN  9781441959065