Ученые измерили погрешности цифровых секундомеров. Иногда это 0,09 секунды
Американские математики проанализировали измеренное секундомерами время, за которое спортсмены проплывали дистанцию в бассейне, и пришли к выводу, что алгоритмы часов допускают погрешность даже в 0,09 секунды.
Это проблема ошибки чисел с плавающей точкой, которая в 647 заплывах привела к значительной погрешности в результате округления. Озабоченностью оценки времени во время спортивных соревнований и физических экспериментах ученые поделились в American Journal of Physics. Время есть невосполнимый ресурс, который мы все постоянно считаем. А для спортсменов тем более не существует понятия «плюс-минус пять минут» — им очень важено точное время. Главной составляющей любого измерительного устройства является осциллятор — предмет, который колеблется с определенной частотой (чем меньше она отклоняется от заданного значения, тем точнее часы). Современные часы, в том числе и секундомеры для спортсменов, работаю на кварцевых кристаллах. Кварц является идеальным резонатором, который колеблется с четко определенной частотой и тем самым обеспечивает исключительную точность.
Так часы измеряют время, считая предполагаемые колебания кварцевого кристалла. А окончательный счет превратится в привычные нам секунды с десятичными знаками в формате числа с плавающей точкой. В своей работе математики Дэвид Фаукс и Джанет Годолфин (David A. Faux and Janet Godolphin) изучили доступный им объем данных о гонках, чтобы попытаться найти систематическую ошибку округления и разоблачить секундомеры в неточности. По расчетам ученые обратились к плаванию — идеального, по их мнению, спорта для сбора больших объемов данных, ибо одно трехчасовое соревнования обычно дает 300−400 результатов, которые можно получить в открытом доступе. Поэтому исследователи собрали результаты 647 заплывов с секундомером и попытались проанализировать частоту появления отображаемых конкретных цифр на секундомере судей.
Фаукс и Годолфин сосредоточились на двух последних отображаемых цифрах (десятая и сотая секунды) и посмотрели, есть ли какие-то «популярные» значения по сравнению с другими. Типичное время заплыва на дистанции до 100 метров колеблется от 28 до 120 секунд, в зависимости от вида спорта и возраста участников. Так ученые получили набор из 3014615 смоделированных часов, где в среднем каждая пара цифр должна появляться с вероятностью 1%. Результаты их поразили: три пары цифр, а именно 00, 50 и 75, составляют более одной восьмой результатов. Причем вместе с тем есть восемь пар цифр, которые ни разу не попадались на секундомер.
Ученые дополнительно оценили свои результаты по критерию согласованности Пирсона, что позволяет оценить статистическую значимость различий двух или более относительных показателей. Так по гипотезе, каждая сотая на секундомере должна оказаться на дисплее, ожидаемое значение критерия составляет 99, а то, что будет превышать 125, будет указывать на то, что данные значительно отклоняются от гипотезы о равенстве измеренных хронометристом значений. Однако тест показал значение 740, что примерно на 45 стандартных отклонений превышает ожидаемое значение и указывает на статистическую невозможность того, что каждая сотоя измеренная секундомером, имеет равную вероятность. Некоторые пары десятых и сотых появлялись всего 6873 раза, тогда как другие встречались все 81606 раз.
Дело не в том, что часы могут неправильно взаимодействовать с кварцевым кристаллом, или сам кристалл вдруг изменил периодичность своих колебаний. Хотя устройства точно регистрируют время внутри, как механизм, они делают ошибки при преобразовании необработанных данных в значение, легких для чтения человеком. Числа, после приведения в десятичний вид, содержат как правильные цифры, так и «хвосты» из неправильных. Эти «хвосты» и является источником ложых вычислений. Число с плавающей запятой само по себе является точным, но для ограниченного дисплеем устройства его может оказаться много. Прежде всего, эти ошибки округления происходят из-за того, что бесконечность всех действительных чисел невозможно представить в условиях ограниченности памяти устройств, поэтому получаемые нами на дисплеях числа есть только приближениями к реальным значениям.
Так математики пришли к выводу, что это вызывает ошибки округления. Причем компьютерная модель секундомера с тремя миллионами симуляций не указала на подобную ошибку. Фаукс и Годолфин считают, что такая проблема может коснуться широкого спектра устройств от множества производителей, ведь алгоритм преобразования используемых чисел с плавающей точкой является отраслевым стандартом — IEEE 754. Математики видят решение проблемы в изменении таблиц переформатирования полученных значений, чтобы алгоритмы могли лучше превращать количество колебаний кварцевого кристалла в соответствующее время в секундах.
По их словам, полученное с помощью секундомеров время, то ли в спорте, то ли в результате лабораторных физических экспериментов, имеет ошибку округления, аналогичную по размерам к неопределенности, связанной с реакцией человека. Не важно, как точно вы можете нажать «старт» и «стоп», если секундомер уже решил все за вас. В статье ученые вспоминают противоречивый заплыв на 100 метров баттерфляем на Олимпийских играх 2008 года в Пекине. Тогда победу одержал Майкл Фелпс, обойдя своего соперника Милорада всего на 0,01 секунды. «Мы подчеркиваем, что у нас нет доказательств того, что подобные временные аномалии имели место в этих соревнованиях. А также мы не уверены даже что они существуют в электронных системах хронометража, используемых на спортивных соревнованиях высокого уровня, где ошибка округления может быть исправлена », — отмечают исследователи в своей статье.
Впрочем, затем они предоставляют результаты гонки двух пловцов — «А» и «Б». Так за время заплыва первого произошло 1660659 кварцевых колебаний, а следовательно «истинное» время — 50.6800 секунды. У второго колебаний произошло 1657710, поэтому правильное время — 50.5900. Но секундомеры решили иначе и отдали победу пловцу «А», посчитав его время как 50.57 секунды против 50.58 пловца «Б». Это наглядный пример того, как из-за ошибки округления преимущество получил спортсмен, пришедший на самом деле вторым, поэтому необходимо найти способ исправить эти ошибки алгоритма, признавая все риски.
Перевод материала nauka.ua