о логике и лифте
Dec. 17th, 2013 12:22 amЭто случилось сегодня вечером. Я уходил домой с работы. Спустился в лобби, зашел в кабинку лифта на подземную парковку, нажал на номер этажа -4. Вслед за мной в лифт зашли еще три человека: долговязый молодой человек с адвокатским портфелем, дама средних лет в деловом костюме и с бежевой сумочкой через плечо, и плотно сбитый мужик с щетиной сисадмина. Я стоял к ним спиной в ту секунду, что они входили, не успел еще обернуться лицом к двери, как требует этикет - и потому не видел, кто из них нажал на какой этаж, но когда обернулся, увидел, что кроме -4 нажаты еще -3 и -2.
Дверь закрылась и лифт поехал вниз. Я думал - четыре человека на три этажа, кто выйдет вместе с кем? Может, один из них на минус четвертый вместе со мной? Лифт остановился на -2, и из него вышли долговязый адвокат и дама с сумочкой. Ага, подумал я, значит сисадмин на минус третий, а на минус четвертый я один. Двери уже начали закрываться, но тут дама вернулась и втиснулась обратно. Она вышла машинально, понял я, ей не на -2 на самом деле. Интересно, куда ей на самом деле. Ну что ж, поехали дальше. Остановились на минус третьем, дама вышла, и сисадмин... и вот тут я сильно удивился: почему-то сисадмин не вышел вместе с ней, как же так? Алгоритм дал какой-то странный сбой! Те несколько секунд, что лифт ехал на минус четвертый, я разбирался в том, что произошло, и наконец до меня дошло как раз в ту секунду, что двери раскрылись.
Я допустил ошибку в своих умозаключениях - в чем она заключалась? Когда я думал, что дама вышла на минус втором, я резонно заключил из этого, что сисадмин выйдет на минус третьем. Но когда оказалось, что этот факт был неверен, дама вернулась - я не отменил это умозаключение, и не вернул в своем уме сисадмину "свободу выбора" выходить как на -3, так и на -4. Мне это даже не пришло в голову. Я думал, что рассуждаю совершенно логично, и учитываю все факты по мере их поступления, но я ошибался.
Интересно, есть ли какое-то формальное название у ошибки такого рода. По-видимому, учесть последствия нового факта легче и естественнее, чем "откатить ситуацию" и отменить последствия оказавшегося ложным старого факта. Ведь дело тут именно в откате, а не просто в учете новой информации. Из факта "дама не выходит на минус втором этаже" не следует никаких последствий для сисадмина, кроме "он может выйти на минус 3-м, а может и на минус 4-м" - но это и так самоочевидно из ситуации, поэтому непонятно, зачем нужно специально это себе говорить. Нужно именно отменить уже существующее более узкое следствие "сисадмин выйдет на минус 3-м".
Меня подмывает назвать это "ошибкой осадочка" - помните, как в анекдоте, ложки нашли, но осадочек остался? Так и тут. Но по-моему, это название не переводится на другие языки.
Дверь закрылась и лифт поехал вниз. Я думал - четыре человека на три этажа, кто выйдет вместе с кем? Может, один из них на минус четвертый вместе со мной? Лифт остановился на -2, и из него вышли долговязый адвокат и дама с сумочкой. Ага, подумал я, значит сисадмин на минус третий, а на минус четвертый я один. Двери уже начали закрываться, но тут дама вернулась и втиснулась обратно. Она вышла машинально, понял я, ей не на -2 на самом деле. Интересно, куда ей на самом деле. Ну что ж, поехали дальше. Остановились на минус третьем, дама вышла, и сисадмин... и вот тут я сильно удивился: почему-то сисадмин не вышел вместе с ней, как же так? Алгоритм дал какой-то странный сбой! Те несколько секунд, что лифт ехал на минус четвертый, я разбирался в том, что произошло, и наконец до меня дошло как раз в ту секунду, что двери раскрылись.
Я допустил ошибку в своих умозаключениях - в чем она заключалась? Когда я думал, что дама вышла на минус втором, я резонно заключил из этого, что сисадмин выйдет на минус третьем. Но когда оказалось, что этот факт был неверен, дама вернулась - я не отменил это умозаключение, и не вернул в своем уме сисадмину "свободу выбора" выходить как на -3, так и на -4. Мне это даже не пришло в голову. Я думал, что рассуждаю совершенно логично, и учитываю все факты по мере их поступления, но я ошибался.
Интересно, есть ли какое-то формальное название у ошибки такого рода. По-видимому, учесть последствия нового факта легче и естественнее, чем "откатить ситуацию" и отменить последствия оказавшегося ложным старого факта. Ведь дело тут именно в откате, а не просто в учете новой информации. Из факта "дама не выходит на минус втором этаже" не следует никаких последствий для сисадмина, кроме "он может выйти на минус 3-м, а может и на минус 4-м" - но это и так самоочевидно из ситуации, поэтому непонятно, зачем нужно специально это себе говорить. Нужно именно отменить уже существующее более узкое следствие "сисадмин выйдет на минус 3-м".
Меня подмывает назвать это "ошибкой осадочка" - помните, как в анекдоте, ложки нашли, но осадочек остался? Так и тут. Но по-моему, это название не переводится на другие языки.
no subject
Date: 2013-12-16 10:43 pm (UTC)no subject
Date: 2013-12-17 10:08 am (UTC)no subject
Date: 2013-12-18 09:09 am (UTC)no subject
Date: 2013-12-18 09:54 am (UTC)Логическая ошибка
Date: 2013-12-17 06:30 pm (UTC)no subject
Date: 2013-12-16 11:27 pm (UTC)no subject
Date: 2013-12-16 11:43 pm (UTC)no subject
Date: 2013-12-16 11:45 pm (UTC)no subject
Date: 2013-12-17 12:22 am (UTC)no subject
Date: 2013-12-17 08:50 am (UTC)no subject
Date: 2013-12-17 01:24 am (UTC)no subject
Date: 2013-12-17 04:37 am (UTC)no subject
Date: 2013-12-17 02:55 am (UTC)no subject
Date: 2013-12-17 06:20 am (UTC)no subject
Date: 2013-12-17 07:22 am (UTC)Свободу сисадмину!
no subject
Date: 2013-12-17 07:47 am (UTC)no subject
Date: 2013-12-17 08:58 am (UTC)Обсирают западный мир (и в особенности Израиль) в течение месяца-двух на первых страницах, а извиняются в одном номере на 16-й.
См.: Дженин, Мухаммад аль-Дура и т.д.
no subject
Date: 2013-12-17 07:59 am (UTC)Кстати, есть такой метод компьютерного моделирования. Чтобы уменьшить накладные расходны на синхронизацию и увеличить параллелизм, допускается спекулятивное вычисление, но иногда доходит запоздавшая информация о каком-то ранее неучтенном событии, и тогда приходится делать откат и, более того, распространять информацию об откате на всю систему. Поэтому такой подход используется редко, когда в модели очень редко происходят события и большую часть модельного времени ничего не происходит.
no subject
Date: 2013-12-17 08:11 am (UTC)ps тоже про ложечки подумал первым делом.
no subject
Date: 2013-12-17 11:33 am (UTC)no subject
Date: 2013-12-17 11:47 am (UTC)Можно назвать ошибкой стэка, когда сверху видно только верхний элемент.
no subject
Date: 2013-12-17 05:14 pm (UTC)no subject
Date: 2013-12-17 07:26 pm (UTC)А еще это похоже на exception unsafe код :-)
no subject
Date: 2013-12-18 09:10 am (UTC)no subject
Date: 2013-12-20 02:17 am (UTC)Возможно стоит поискать в области мошенничества и пропаганды, может там есть название такого приёма.
no subject
Date: 2013-12-27 07:44 pm (UTC)(Только по-русски это будет плохо - "ошибка отката". Ошибка [не]восстановления контекста. ;))