Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему до сих пор никакой суперкомпьютер не просчитал дерево ходов в шахматах до конца?

ТехнологииПрограммирование+5
Саша Маничев
  ·   · 39,0 K
выпускник НГУ  · 20 окт 2016

В начальной позиции шахматной партии 20 вариантов ходов (16 ходов пешками и 4 конем). После первого хода у соперника столько же вариантов. После первых ходов возможных вариантов становится больше (так как вступают в игру ферзь, ладьи и слоны), но для простоты ограничимся 20 ходами. Тогда за 40 ходов (белыми и черными) у нас как минимум 20^80 = 10^80 * 2^80 >= 10^90 веток дерева. 

Теперь обратимся к производительности компьютеров https://ru.wikipedia.org/wiki/FLOPS . В ближайшее время ожидается компьютер с 10^18 флопсов, то есть 10^18 операций с плавающей запятой в секунду. Предположим, что перебор каждого варианта выполняется пусть даже в миллиард раз быстрее чем одна простейшая операция с плавающей точкой. Тогда этот компьютер сможет перебрать 10^27 вариантов за секунду. Но тогда на пересчет всех возможных вариантов ему понадобится минимум (10^90 / 10^27) 10^63 секунд. Если учесть, что в году у нас ~ 3 10^8 секунд, то компьютеру понадобится минимум 10^55 лет.

Но ведь можно поставить тысячи таких компьютеров, неужели никто не хочет узнать, кто же должен победить в... Читать дальше
@Саша Маничев, все уже в доли секунды просчитывается вычислительными кластерами из видеокарт, которые в тысячи раз мощнее обычного процессорного ядра, просто все болт забили)

тысячи компьютеров это всего лишь 10^3. Ну то есть вы поднимите производительность таким образом с 10^18 флопсов до 10^21 флопсов в секунду. При этом по бюджету это будет сравнимо, думаю, с  годовым мировым научно-технологическим бюджетом, если не больше

Шахматы — все-таки не крестики-нолики, совершенно не факт, что там есть беспроигрышная стратегия.

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

Почему там может её не быть

Когда Каспаров играл с Deep Blue, то фидошники шутили: «Deep Blue — Каспаров, 4:3. Наши выигрывают!». :)

Можно ограничиться не тысячами компьютеров, а гораздо большим числом, если использовать сетевые вычисления: Получив положение на доске, компьютер делает ≈20 ходов и «раздаёт» новые положения на доске ≈20 своим «партнёрам». Те делают то же самое. Все компьютеры участвующие в этой вакханалии регистрируются на неком сервере и туда же отправляют результаты.

Но всё равно этого будет мало. Во-первых, увеличение числа компьютеров в N раз не увеличивает общую производительность в N раз, а гораздо меньше. Во-вторых, надо передавать и хранить данные результатов. Мало не покажется. :)

Ну и да, бесполезность этой затеи тут уже была от мечена. Deep Blue уже решила шахматную игру лучше Каспарова, и этого вполне достаточно.

Следующим прорывом на этом поприще может быть только обучение игре в шахматы нейронной сети. Построение дерева едва ли интересно. Технология-то понятна: грубо говоря, получится как в крестики-нолики, только вариантов много.

Есть еще одна характеристика скорости работы суперкомпьютера -- TEPS, traveled edges per second, она нашему случаю больше подходит.

А почему должен быть именно перебор? Есть и другие алгоритмы. А также, есть и другие компьютеры (аналоговые, квантовые, днк-компьютеры, оптические компьютеры. Они может быть работают совсем не так как "обычные" компьютеры. И возможно там не нужен никакой перебор вариантов.

@Пианино 55, кластер из  нескольких тысяч топовых видеокарт который применяют в моделировании движения всех атомов во вселенной, просчитает все за доли секунды, просто ну никому оно не нужно, а видеокарта имеет десятки тысяч CUDA ядер, каждое из которых сравнимо с несколькими процессорными ядрами, вроде как 1 ядро CUDA это 3-4 простых ядра цпу, взять для сравнения видеокарту топовую на апрель 2023 года от зеленых - RTX 4090 CUDA-ядра: 16384, перемножаем CUDA ядра ну пусть даже на 2, то есть симулируем ядра обычного процессора 16384х2=32768 якобы процессора с тактовой частотой 2 ГГц, которые за 1 сек выполняют каждое 2 миллиарда операций, считаем кол-во операций в секунду с одной видеокарты 32768 х 2 000 000 000 = 65 536 000 000 000 операций в секунду, ну и представьте кластер хотя бы с 1 тысячей видеокарт таких что может высчитать, можете для сравнения сначала понять что это за цифра))))

Суперкомпьютеры создают Люди.... Никогда не думайте что техника умнее чем человек.

Вот мои аккаунты на: «Знаниях»: https://znanija.co...  · 24 апр 2020
Приблизительное количество неповторяющихся шахматных партий называется числом Шеннона. Она равняется 10^120. В основу вычислений легло предположение о том, что каждый ход игрок делает выбор из, в среднем, 30 ходов, а среднее... Читать далее
1 эксперт согласен
Копирайтер-любитель и дипломированный лентяй  · 20 окт 2016

Потому что даже у партии на 40 ходов вариантов исхода на несколько десятков порядков больше, чем атомов во Вселенной (10^128 против 10^87). Такое сложно будет посчитать, если возможно вообще.