Hesablama mürəkkəbliyi nəzəriyyəsi (ing. Computational Complexity Theory) — kompüter elmlərinin bir sahəsi olub, müxtəlif problemlərin həllində istifadə olunan resursların miqdarını (məsələn, vaxt və yaddaş) ölçür və təsnif edir.[1] Bu nəzəriyyə, müxtəlif problemlərin hansı resurslar daxilində həll oluna biləcəyini və hansı problemlərin həlli üçün çox resurs tələb olunduğunu müəyyən etməyə çalışır.[2] Hesablama mürəkkəbliyi nəzəriyyəsi həm də riyazi çətinliklərin və resurs məhdudiyyətlərinin təhlili ilə kompüterlərin həll edə biləcəyi problemlər dairəsini genişləndirir.[3]
Mürəkkəblik sinifləri müxtəlif məsələlərin həllində istifadə olunan resurs miqdarına görə təsnif olunur. Ən məşhur mürəkkəblik sinifləri aşağıdakılardır:[4]
P və NP problemi, mürəkkəblik nəzəriyyəsinin ən mühüm açıq suallarından biridir. Problem, P sinifində olan məsələlərin NP sinifində olan bütün məsələlərə bərabər olub-olmadığını öyrənməyə çalışır. Başqa sözlə, "Hər polinomial vaxtda yoxlanıla bilən məsələ polinomial vaxtda həll oluna bilərmi?" sualı ilə bağlıdır. Bu suala cavab verilərsə, hesablama nəzəriyyəsində böyük bir irəliləyiş olar.[7]
Mürəkkəblik nəzəriyyəsində problemlərin resurs tələbatını dəyərləndirmək üçün O-Böyük Notasiyası (ing. Big O Notation) və digər asimptotik notasiya üsulları istifadə edilir. Bu, məsələlərin həllində tələb olunan vaxt və yaddaşın nisbətini təsvir edir və alqoritmin "sürətini" ifadə edir.
Məsələn:
Mürəkkəblik nəzəriyyəsi praktiki olaraq bir çox sahədə əhəmiyyətlidir:
Hesablama nəzəriyyəsi müxtəlif modellərlə təchiz edilmişdir və bu modellərdə resurs tələbləri və onların effektivliyi arasında əlaqələr tədqiq edilir. Türinq maşını hesablama modellərinin ən geniş istifadə olunanıdır və mürəkkəblik siniflərini də onun əsasında müəyyənləşdirir.[10]
Mürəkkəblik nəzəriyyəsi kompüter elmlərinin nəzəri əsasını təşkil edir və bu nəzəriyyə ilə alqoritmlərin daha da effektiv şəkildə inkişaf etdirilməsi, məsələlərin həllində lazım olan resursların optimallaşdırılması üçün geniş imkanlar yaradır.[11]