پیچیدگی حالت متوسط
در نظریهٔ پیچیدگی محاسباتی، پیچیدگی حالت متوسط یک الگوریتم (برخلاف پیچیدگی بدترین حالت) مقدار متوسط پپیچیدگی محاسباتی یک الگوریتم را ارائه میکند.
بیشتر الگوریتمها بر اساس ویژگیهای ورودی رفتار (پیچیدگی) متفاوتی دارند. به عنوان مثال در الگوریتمهای مرتبسازی میزان پیچیدگی را بر حسب طول آرایه () بررسی میکنیم، در حالی که بسیاری از این الگوریتمها به متغیرهای دیگری نیز بستگی دارند؛ مثلاً این که این عدد چه اعدادی باشند یا چه رابطهای با یکدیگری داشته باشند.
پیچیدگی حالت متوسط بیان میکند که بهطور متوسط (بین اشکالی که این مقادیر و این روابط ممکن است داشته باشند)، پیچیدگی الگوریتم مورد بحث چه خواهد بود.[۱]
سه انگیزه اصلی برای مطالعه پیچیدگی حالت متوسط وجود دارد.[۲] ممکن است برخی مسائل در بدترین حالت عملکرد بسیار ضعیفی داشته باشند اما این حالتهای بد بسیار نادر باشند؛ بنابراین پیچیدگی حالت متوسط ممکن است معیار دقیقتری برای عملکرد یک الگوریتم باشد. پیچیدگی حالت متوسط اجازه میدهد تا کارآمدترین الگوریتم در دنیای واقعی را در میان چند الگوریتم (مثل مرتبسازی سریع) تشخیص دهیم. همچنین تحلیل پیچیدگی متوسط ابزارهایی را فراهم میکند که برای ایجاد نسخههای سخت مسائل استفاده میشوند و میتوانند در زمینههایی مانند رمزنگاری و تصادفی سازی مورد استفاده قرار گیرند.
تعاریف
[ویرایش]تعریفی مشابه تعریف پیچیدگی بدترین حالت به این صورت است:
در یک مدل محاسباتی با فرض الفبای باینری، تمام ورودیهای به طول ممکن را با نمایش میدهیم. فرض کنید برای الگوریتم تابع پیچیدگی الگوریتم را در حالات مختلف بدهد؛ مثلاً یعنی اگر و ۱۰ ورودی به ترتیب به الگوریتم داده شود، در آن صورت با پیچیدگی اجرا میشود.
حالت متوسط پیچیدگی محاسباتی را به این صورت تعریف میکنیم: میانگین این پیچیدگیها میان تمام حالات مختلف. به عبارتی دیگر در تحلیل احتمالاتی، با فرض این که احتمال پیشامد هر ورودی ممکن (متغیر تصادفی) از یکسان باشد، امید ریاضی پیچیدگی را مینامیم.[۱]
در بیشتر مواقع فرض توزیع یکنواخت فرض معقولی است ولی شاید گاهی نیاز باشد امید ریاضی را با فرض دیگری حساب کنیم.
توصیف
[ویرایش]پیچیدگی را با نمادهای مجانبی توصیف میکنیم؛ مثلاً در مرتبسازی سریع، پیچیدگی بدترین حالت است در حالی که در حالت متوسط است.