?

Log in

No account? Create an account
компьютеры и математика: часть вторая - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

компьютеры и математика: часть вторая [сент. 10, 2001|05:55 pm]
Anatoly Vorobey
Продолжение вот этой записи.

Перед тем, как перейти к алгоритмической стороне дела - ещё немного о различии двух типов доверия. Этот пример прямо-таки взят из жизни. Несколько лет назад в процессоре Пентиум был обнаружен баг - в некоторых редких ситуациях он неправильно делил действительные числа. Интель, естественно, исправила баг в следующих версиях и бесплатно заменила процессоры всем желающим.

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

Первый импульс: ошибся при счёте. Пересчитал заново и получил такой же результат.
Вторая возможность: дурацкий баг в программе. Запустил другую программу-калькулятор - не помогло.
Теперь М практически убеждён, что всё-таки что-то не так сделал при делении в столбик. Он повторяет всю процедуру ещё раз и очень внимательно. Не помогает. Он звонит коллеге и просит того поделить в столбик два числа вручную, не объясняя зачем. Не помогает.
Может, что-то не так с моим компьютером? Просит коллегу (у того тоже Пентиум) посчитать на компьютере - не помогает.
Тут, наконец, М начинает подозревать модель процессора (или модель компьютера "вообще", если он в этом не разбирается и не знает, что такое процессор). Он достаёт свой старенький электронный калькулятор (или делит оба числа на своём юниксовском счету на факультетском сервере) - ура! Сходится с его ручными подсчётами. Ошибка обнаружена, можно писать письмо в Интель. Между прочим, примерно так и был обнаружен этот баг - стараниями математика, не понимавшего, почему его программа выдавала абсурдные результаты.

Но вот что важно: ни разу во время поисков источника проблемы М не задумался о правильности алгоритма деления в столбик. Он подвергал сомнению свою способность безукоризненно выполнить этот алгоритм - "физический" вид доверия. Но после нескольких независимых проверок (собственных и коллег) это сомнение по сути дела исчезло. Он подвергал сомнению способность компьютера правильно выполнить свой алгоритм (и потому выполнял деление несколько раз - мало ли что там могло закоротить) - тоже "физическое" доверие. Наконец, он подверг сомнению правильность компьютерного алгоритма (о котором он ничего не знал) - "математический" вид доверия - и это оказалось верным шагом. Но в алгоритме деления в столбик он не сомневался. Почему?

Потому что он знал, что может строго доказать его правильность (она же soundness, если использовать жаргон логиков). Даже проще: это доказательство являлось для него очевидным свойством алгоритма. Он мог бы выписать долгое подробное формальное доказательство, но это всего лишь подтвердило бы очевидное.

Продолжение следует.
СсылкаОтветить

Comments:
[User Picture]From: stas
2001-09-10 09:06 am

по-моему

пора уже писать если не книгу, то цикл статей на эту тему ;)
(Ответить) (Thread)
[User Picture]From: avva
2001-09-10 12:55 pm

Re: по-моему

А что, интересно всё это выглядит, или это такая подколка в связи с большим размером? ;)

Я на самом деле размышлял о том, чтобы оформить это в виде статьи, но вряд ли найдётся терпение и (в особенности) время.
(Ответить) (Parent) (Thread)
[User Picture]From: stas
2001-09-10 01:49 pm

Интересно

И жалко, если это только в ЖЖ останется - все же контингент не такой уж широкий. Плюс я эту тему у вас уже не первый раз встречаю в разных видах и разными частями. Вот и обьединить бы их. :)
(Ответить) (Parent) (Thread)
From: (Anonymous)
2001-09-10 09:32 am

Mathematica

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

(Ответить) (Thread)
[User Picture]From: french_man
2001-09-10 10:02 am

Re: Mathematica

Машина делает то, что ей велел вычислитель. А если вычислитель дурак, то машина не виновата.
(Ответить) (Parent) (Thread)
[User Picture]From: french_man
2001-09-10 10:05 am

Вижу, куда вы клоните.

Но подождем конца.
(Ответить) (Thread)
[User Picture]From: avva
2001-09-10 10:51 am

Re: Вижу, куда вы клоните.

Ох, озаботили Вы меня...

Надеюсь только, что когда прочту это всё свежим взглядом дня через три, не скажу "боже, какой бред!". Ибо очень времени затраченного будет жалко ;)
(Ответить) (Parent) (Thread)
[User Picture]From: french_man
2001-09-10 10:56 am

Pardon

Ох, озаботили Вы меня...

Лучше это, чем про Шарона;)
(Ответить) (Parent) (Thread)