Допустим, вы установили на свой компьютер две разные шахматные программы и связали их с небольшой управляющей программой, которая заставляет их играть друг с другом партию за партией в потенциально бесконечной серии. Станут ли они играть одну и ту же партию снова и снова, пока вы не выключите компьютер? Вы могли бы настроить программы А и Б таким образом, но в таком случае не узнали бы о них ничего интересного. Допустим, А побеждает Б в этой часто повторяемой партии. На основании этого нельзя сказать, что программа А в целом лучше программы Б или что программа А победит программу Б в другой партии, а повторение одной и той же партии не позволило бы вам узнать ничего о сильных и слабых сторонах каждой программы. Гораздо более информативным стал бы турнир, в котором программы А и Б сыграли бы последовательность разных партий. Организовать его несложно. Если любая из шахматных программ в ходе расчетов обращается к генератору случайных чисел (если, например, она периодически “подбрасывает монетку”, чтобы найти выход из ситуаций, где нет очевидного основания для выбора того или иного действия в процессе поиска удачного хода), то в следующей партии состояние генератора случайных чисел будет иным (если только вы не настроили его перезагрузку), а следовательно, будут рассматриваться другие варианты в другом порядке, что время от времени будет приводить к “выбору” других ходов. В результате вторая партия сложится по-другому, а третья будет отличаться иным образом – и в итоге все партии получившейся серии окажутся уникальны, как снежинки. Тем не менее, если вы выключите компьютер, а затем перезапустите его с той же программой, на ваших глазах развернется точно та же серия не похожих друг на друга партий, поскольку та же самая псевдослучайная последовательность чисел будет определять результаты “подбрасывания монетки” обеими шахматными программами.
Допустим, мы создали такую шахматную вселенную с двумя программами, А и Б, и изучаем результаты серии из, скажем, тысячи партий. Мы найдем множество заслуживающих доверия закономерностей. Допустим, мы установим, что программа А всегда побеждает программу Б в тысяче разных партий. Нам захочется объяснить эту закономерность, а фраза “поскольку программа детерминистична, программа А обречена всегда побеждать программу Б” не удовлетворяет нашего небезосновательного любопытства. Нам захочется понять, что в структуре, методах и диспозициях программы А объясняет ее превосходство в шахматах. Программа А имеет компетенцию или способность, которой не хватает программе Б, и нам необходимо изолировать этот любопытный фактор. Возможно, объяснение следует искать на низком уровне: может выясниться, например, что программы А и Б на самом деле одинаковы и на уровне исходного кода представляют собой идентичные оценщики шахматных ходов, но программа А скомпилирована эффективнее программы Б, а потому может лучше анализировать партию за одинаковое количество машинных циклов. Фактически программа А “думает [о шахматах] ровно то же самое”, что и программа Б, а программа Б “знает” о шахматах все, что известно программе А, но программа А просто думает быстрее. (На серьезном уровне, на шахматных турнирах, игра всегда ведется с использованием часов: не успев сделать все ходы за отведенное время, вы проиграете.) Более вероятно, что превосходство программы А над программой Б потребует объяснения на более высоком уровне – на уровне типичных элементов, которые задействуются в процессе принятия решений в шахматах: представлений шахматных позиций, оценок возможных продолжений, решений о выборе конкретных продолжений и так далее. Таким образом, программа А может корректировать относительную ценность фигур по ходу партии, лучше оценивать шахматные позиции либо раньше или позже прерывать определенные изыскания. Она не “думает то же самое”, что и программа Б, она “думает лучше, а ее мысли сложнее”. (Само собой, она лишь вроде как думает. В отличие от человека она не наделена сознанием.)