Interested Article - Комбинаторный взрыв

Комбинаторный взрыв — термин, используемый для описания эффекта резкого («взрывного») роста временной сложности алгоритма при увеличении размера входных данных задачи .

Более точно это означает, что рассматриваемый алгоритм не является полиномиальным, то есть время решения задачи не ограничено никаким многочленом от длины входа. Обычно такие задачи имеют экспоненциальную или даже сверхэкспоненциальную сложность.

Для обхода проблемы комбинаторного взрыва ищут специальные методы решения, в частности, применяют эвристические алгоритмы .

Примеры

a b c d e f g h
8
a8 чёрная ладья
b8 чёрный конь
c8 чёрный слон
d8 чёрный ферзь
e8 чёрный король
f8 чёрный слон
g8 чёрный конь
h8 чёрная ладья
a7 чёрная пешка
b7 чёрная пешка
c7 чёрная пешка
d7 чёрная пешка
e7 чёрная пешка
f7 чёрная пешка
g7 чёрная пешка
h7 чёрная пешка
a2 белая пешка
b2 белая пешка
c2 белая пешка
d2 белая пешка
e2 белая пешка
f2 белая пешка
g2 белая пешка
h2 белая пешка
a1 белая ладья
b1 белый конь
c1 белый слон
d1 белый ферзь
e1 белый король
f1 белый слон
g1 белый конь
h1 белая ладья
8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
a b c d e f g h
Начальное положение фигур в настольной игре шахматы

Комбинаторный взрыв возникает во многих задачах поиска , в задачах просчёта последовательностей, решаемых методами прямого перебора .

Задача коммивояжера

В классической задаче коммивояжёра требуется найти оптимальную последовательность посещения коммивояжером городов. Единственный точный способ решения задачи состоит в том, чтобы перебрать все возможные маршруты и выбрать тот, который занимает наименьшее количество времени. Тем самым сложность решения задачи коммивояжера оказывается пропорциональной числу всех возможных последовательностей городов, которое дается формулой перестановок:

Шахматы

Так, например, гипотетически возможно просчитать все варианты ходов в настольной игре шахматы от начала игры до конца методом полного перебора всех комбинаций. Однако в настоящее время и в ближайшем будущем решить такую задачу практически невозможно. Например, для вычислительной машины, способной просчитать миллион игровых комбинаций в секунду с отсевом заведомо неоптимальных ветвей , на просчёт 6 ходов вперёд потребуется 1 секунда, на 12 ходов — 11 дней, а на 18 ходов — около 32000 лет.

Примечания

  1. . Дата обращения: 29 мая 2010. 6 августа 2010 года.
  2. . Дата обращения: 29 мая 2010. 8 июня 2013 года.
  3. . Дата обращения: 29 мая 2010. 23 августа 2011 года.
  4. . Дата обращения: 29 мая 2010. 12 августа 2011 года.
Источник —

Same as Комбинаторный взрыв