avva: (Default)
avva ([personal profile] avva) wrote2001-09-10 05:55 pm

компьютеры и математика: часть вторая

Продолжение вот этой записи.

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

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

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

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

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

Продолжение следует.
stas: (Default)

ïî-ìîåìó

[personal profile] stas 2001-09-10 09:06 am (UTC)(link)
ïîðà óæå ïèñàòü åñëè íå êíèãó, òî öèêë ñòàòåé íà ýòó òåìó ;)

Re: ïî-ìîåìó

[identity profile] avva.livejournal.com 2001-09-10 12:55 pm (UTC)(link)
À ÷òî, èíòåðåñíî âñ¸ ýòî âûãëÿäèò, èëè ýòî òàêàÿ ïîäêîëêà â ñâÿçè ñ áîëüøèì ðàçìåðîì? ;)

ß íà ñàìîì äåëå ðàçìûøëÿë î òîì, ÷òîáû îôîðìèòü ýòî â âèäå ñòàòüè, íî âðÿä ëè íàéä¸òñÿ òåðïåíèå è (â îñîáåííîñòè) âðåìÿ.
stas: (Don't panic!)

Èíòåðåñíî

[personal profile] stas 2001-09-10 01:49 pm (UTC)(link)
È æàëêî, åñëè ýòî òîëüêî â ÆÆ îñòàíåòñÿ - âñå æå êîíòèíãåíò íå òàêîé óæ øèðîêèé. Ïëþñ ÿ ýòó òåìó ó âàñ óæå íå ïåðâûé ðàç âñòðå÷àþ â ðàçíûõ âèäàõ è ðàçíûìè ÷àñòÿìè. Âîò è îáüåäèíèòü áû èõ. :)

Mathematica

(Anonymous) 2001-09-10 09:32 am (UTC)(link)
 àðõèâàõ þçåðîâ Ìàòåìàòèêè-3.0 (ïðîãðàììà äëÿ ñèìâîëüíûõ âû÷èñëåíèé) åñòü ïèñüìî îäíîãî áåäîëàãè. Îí ñ÷èòàë îäèí èíòåãðàë ñ Áåññåëåâñêèìè ôóíêöèÿìè.  èòîãå ïîëó÷èë ÷òî-òî ñêîëüçêîå, íà÷àë ýòî ïåðåïðîâåðÿòü ðó÷êàìè ÷åðåç ðàçëîæåíèÿ, è ÷åðåç íåñêîëüêî ÷àñîâ -- îêàçàëñÿ ïðàâ. Ìàøèíà -- äóðà.

Re: Mathematica

[identity profile] french-man.livejournal.com 2001-09-10 10:02 am (UTC)(link)
Ìàøèíà äåëàåò òî, ÷òî åé âåëåë âû÷èñëèòåëü. À åñëè âû÷èñëèòåëü äóðàê, òî ìàøèíà íå âèíîâàòà.

Âèæó, êóäà âû êëîíèòå.

[identity profile] french-man.livejournal.com 2001-09-10 10:05 am (UTC)(link)
Íî ïîäîæäåì êîíöà.

Re: Âèæó, êóäà âû êëîíèòå.

[identity profile] avva.livejournal.com 2001-09-10 10:51 am (UTC)(link)
Îõ, îçàáîòèëè Âû ìåíÿ...

Íàäåþñü òîëüêî, ÷òî êîãäà ïðî÷òó ýòî âñ¸ ñâåæèì âçãëÿäîì äíÿ ÷åðåç òðè, íå ñêàæó "áîæå, êàêîé áðåä!". Èáî î÷åíü âðåìåíè çàòðà÷åííîãî áóäåò æàëêî ;)

Pardon

[identity profile] french-man.livejournal.com 2001-09-10 10:56 am (UTC)(link)
Îõ, îçàáîòèëè Âû ìåíÿ...

Ëó÷øå ýòî, ÷åì ïðî Øàðîíà;)