Kombinatorická exploze je termín používaný k popisu efektu prudkého ("výbušného") zvýšení časové složitosti algoritmu se zvětšením velikosti vstupních dat problému [1] .
Přesněji to znamená, že uvažovaný algoritmus není polynomiální, to znamená, že čas na vyřešení problému není omezen žádným polynomem v délce vstupu. Tyto problémy mají obvykle exponenciální nebo dokonce superexponenciální složitost.
Původ názvu je dán tím, že nelze najít jiný způsob, jak problém vyřešit. , kromě kompletního výčtu všech možných možností. V tomto případě je čas potřebný k řešení úměrný počtu všech možných konfigurací, který je určen z určitých kombinatorických úvah (kombinace, permutace).
K obejití problému kombinatorické exploze se hledají speciální metody řešení, zejména se používají heuristické algoritmy .
Kombinatorická exploze se vyskytuje v mnoha úlohách hledání [2] , v úlohách sekvenčního výpočtu řešených metodami hrubé síly . [3] [4]
V klasickém problému obchodního cestujícího je potřeba najít optimální sled návštěv měst obchodním cestujícím. Jediný přesný způsob, jak problém vyřešit, je projít všechny možné trasy a vybrat si tu, která zabere nejméně času. Složitost řešení problému obchodního cestujícího se tedy ukazuje jako úměrná počtu všech možných sekvencí měst, který je dán permutačním vzorcem:
Takže je například hypoteticky možné spočítat všechny možnosti tahů v deskové hře šachy od začátku partie do konce úplným výčtem všech kombinací. V současnosti a v blízké budoucnosti [2] je však řešení takového problému prakticky nemožné. Například u počítače schopného vypočítat milion herních kombinací za sekundu s eliminací zjevně neoptimálních větví bude výpočet 6 tahů dopředu trvat 1 sekundu, 11 dní pro 12 tahů a asi 32 000 let pro 18 tahů. [2]