A kombinatorikus robbanás egy olyan kifejezés, amely az algoritmus időbonyolultságának éles ("robbanásszerű") növekedésének hatását írja le a probléma bemenő adatainak méretének növekedésével [1] .
Pontosabban ez azt jelenti, hogy a vizsgált algoritmus nem polinomiális, vagyis a probléma megoldásának idejét nem korlátozza a bemenet hosszában szereplő polinom. Az ilyen problémák általában exponenciális vagy akár szuper-exponenciális összetettséggel rendelkeznek.
A név eredete abból adódik, hogy a probléma megoldására más módot nem találunk. , kivéve az összes lehetséges opció teljes felsorolását. Ebben az esetben a megoldáshoz szükséges idő arányos az összes lehetséges konfiguráció számával, amelyet bizonyos kombinatorikus megfontolások (kombinációk, permutációk) alapján határoznak meg.
A kombinatorikus robbanás probléma megkerülésére speciális megoldási módszereket keresnek, különösen heurisztikus algoritmusokat alkalmaznak .
A kombinatorikus robbanás számos keresési feladatban [2] , nyers erő módszerekkel megoldott sorozatszámítási feladatokban fordul elő . [3] [4]
A klasszikus utazó eladó problémában meg kell találni az utazó eladó városlátogatásának optimális sorrendjét. A probléma megoldásának egyetlen pontos módja az, ha végigmegyünk minden lehetséges útvonalon, és kiválasztjuk azt, amelyik a legkevesebb időt vesz igénybe. Így az utazó eladó probléma megoldásának összetettsége arányosnak bizonyul a városok összes lehetséges sorozatának számával, amit a permutációs képlet ad meg:
Így például hipotetikusan ki lehet számítani a sakktáblás játék összes lépésének lehetőségét a játék elejétől a végéig az összes kombináció teljes felsorolásával. Jelenleg és a közeljövőben [2] azonban gyakorlatilag lehetetlen megoldani egy ilyen problémát. Például egy olyan számítógépnél, amely másodpercenként millió játékkombinációt képes kiszámítani a nyilvánvalóan nem optimális ágak kiküszöbölésével, 1 másodpercbe telik a 6 előrelépés kiszámítása, 11 nap 12 lépésnél, és körülbelül 32 000 év 18 lépésnél. [2]