Якщо проблема двох генералів нерозв'язна, як ми можемо погодитись на речі?
Я маю на увазі, що ми спілкуємося щодня і маємо ті самі обмеження, що і будь-які проблеми спілкування, якими займається інформатика. Чому це не впливає на нас?
Якщо проблема двох генералів нерозв'язна, як ми можемо погодитись на речі?
Я маю на увазі, що ми спілкуємося щодня і маємо ті самі обмеження, що і будь-які проблеми спілкування, якими займається інформатика. Чому це не впливає на нас?
Відповіді:
Я не погоджуюся з іншими відповідями про те, що канал зв’язку потрібно моделювати по-різному. Злості не має значення, для створення двох проблем з генералом достатньо простих втрачених повідомлень з будь-якою ненульовою ймовірністю. Наприклад, електронна пошта та чат мають низький, але не нульовий шанс відкинути повідомлення. Телефонні дзвінки можуть зазнавати перешкод, тому, як із проблемою двох генералів, вам потрібно якось підтвердити, чи почула інша людина те, що ви сказали, ad infinitum. І все ж я часто використовую ці канали, щоб укладати угоди з іншими людьми.
Те, що нерозв'язна проблема «двох генералів» не вдається вирішити, - це гарантувати загальні знання. У реальному житті нам не потрібні формальні загальні знання для того, щоб продовжувати. Тому мета в більшості практичних ситуацій повинна описуватися інакше, ніж мета в задачі двох генералів.
Ми домовляємось про те, що згода є "достатньо ймовірною". Я не міг бути готовий атакувати , якщо я не впевнений , ви будете атакувати, але я готовий йти в кафе , щоб зустрітися з вами при умови , що ймовірність збою зв'язку не сильно вище , ніж вірогідність ви не в змозі прибути через рух транспорту. На відміну від генералів, я ризикую, коли ви зі мною зустрінетесь.
Якщо вам коли-небудь доводилося щось тричі пояснювати вам по-різному, коли ви вперше отримали це, або коли-небудь хтось попросив вас підтвердити щось, що ви вже двічі підтвердили, то це тому, що ви досягли свого порогу " достатньо ймовірним ", перш ніж вони досягли свого.
Візьміть свій вибір психології, філософії чи еволюційної біології як правильну сферу, в якій шукати відповідь на наступне питання, чому нам насправді не потрібна повна гарантія загальних знань :-)
Це стосується також практичних проблем в обчислювальній техніці. Наприклад, коли ми використовуємо код для виправлення однієї помилки, щоб "перевірити", що символ у повідомленні надійшов правильно, все, що ми робимо, - це визнати, що ймовірність подвійної помилки на даний момент незначна. Тоді пізніше у протоколі у нас може бути CRC, щоб ще більше зменшити ймовірність виявлення помилки. Ніщо з цього не вирішує проблему двох генералів, але мені, моєму банку та комерсанту достатньо, щоб "погодитися", що транзакція з кредитною карткою відбулася, з невеликою ймовірністю, що ми не погоджуємось.
Центральна (призначена для каламбура) проблеми "Два генерали" - злісний ворог між ними. Хоча ця модель є ненадійним каналом, вона моделює її таким чином, як ми зазвичай не стикаємося. У цій проблемі повідомлення можуть проходити через руки противника, і немає жодних часових обмежень, перевірки, шифрування чи іншого, про що я не думав.
Коли ми спілкуємося на практиці, по-перше, очікується, що канали, які ми використовуємо, не є надійними таким чином. Безумовно, канали можуть бути галасливими, але це відрізняється від зловмисних. Ймовірність того, що канал, який шумить на рівні бітів, може випадковим чином створити не тільки дійсне повідомлення, яке задовольняє будь-який код для виправлення помилок, який ми використовуємо, але також є дійсним, оскільки він має сенс для приймача, дуже низький. Ми також можемо використовувати такі речі, як криптографія відкритого ключа для шифрування та / або підписання повідомлень, що ускладнює знову фальсифікацію реального повідомлення. По-третє, значна частина нашого спілкування є чутливою до часу - ми насправді розмовляємо з людьми, тому немає затримки з реагуванням, і в цьому випадку нам доведеться бути впевненими, що людина, з якою ми розмовляємо, - це людина, про яку ми маємо говорити. до.
У більшості випадків ми просто припускаємо, що в повідомленнях немає суттєвого джерела помилок, і ми з цим уникаємо. Ми можемо уявити сценарій, коли насправді є зловмисний людина, що псує канал, корумповує канал, але ми натрапимо на пару речей; криптовалюта з відкритим ключем все ще є ефективною, але що важливіше, щоб зусилля та сила, необхідні для точного зіпсування достатньо значної частини комунікації, набагато вищі за те, що можливо. Якби не він, розвідка військових сигналів була б набагато ефективнішою, ніж є (не те, що вона не ефективна, просто було б краще).
Зауважте, що, хоча я доторкнувся до комп'ютерно-машинного спілкування в основному, однакові аргументи можна зробити і для міжособистісного спілкування - джерела шуму зазвичай не можуть підробляти все повідомлення, у нас є системи корекції для тих, хто вводить випадкові, низькі рівні шум, і зусиль просто не варто цього майже в кожному випадку, щоб бути достатньо ресурсів і мотивованих зловмисників.
"Нерозв'язність" проблеми "Два генерали" (або її називають "Координованою атакою") обмежується її контекстом, тобто в цілком асинхронній розподіленій системі з недостовірними, ненадійними каналами зв'язку. У нашому повсякденному житті люди можуть «терпіти» такі погані ситуації.
У книзі « Розум про знання» ; Розділ 6.1 , автори коментують це
Те, що узгоджена атака передбачає загальне знання, залежить від нашої вимоги, що скоординована атака повинна бути одночасною . На практиці одночасність може бути занадто сильною вимогою. Протокол, який гарантує, що генерали атакують за короткий час один одного, може бути цілком задовільним.
Далі він коментує це
Тим не менш, навіть такі слабкі форми координації недосяжні, якщо спілкування недостовірне .
У нашому повсякденному житті люди можуть терпіти (і терплять) короткі затримки та ненадійні канали (як розробив @Luke Mathieson). (Якщо ви заглибитесь і запитаєте "як" і "чому", то це, мабуть, поза сферою інформатики.)
Тому що нам не потрібна гарантована впевненість в тому, що що - то буде відбуватися , коли ми маємо достатній досвід , який говорить нам , що , ймовірно , відбудеться. Наприклад, скажімо, що друг хоче зустрітися зі мною. Він надсилає мені час та місце по електронній пошті, а я відповідаю "Звучить чудово, побачимось тоді". Мені більше не потрібна інформація, щоб продовжувати зустрічатися з ним у вказане місце та час. Просто тому, що я не міг гарантуватищо він отримав мою відповідь, недостатньо, щоб стримати мене від дії на мої припущення. Мій досвід говорить про те, що електронна пошта є досить надійною, і якщо з якихось причин він не отримав моєї відповіді, він знову надішле мені електронну пошту. Мій досвід підказує мені не турбуватися про те, що мою відповідь мовчки відкидають, а всі подальші повідомлення від нього також мовчки відкидають. Таке поєднання подій просто не трапляється досить часто, щоб суттєво заважати моїй здатності зустрічатися з людьми.
Якби ці кутові справи (або інші питання) почали траплятися частіше, це змінило б мій досвід , і тоді я б розглядав можливість змінити свою стратегію. Наприклад, я можу зателефонувати людині, а не надіслати електронною поштою. Або я можу використовувати веб-сайт календаря. Або якийсь інший варіант.
Що стосується міжособистісного спілкування, я вважаю, що технічні проблеми проблеми двох генералів самі по собі не є надзвичайно проблемними, але можуть посилити інші проблеми. Якщо я надсилаю комусь запит на роботу, і я не отримую від них відповіді за розумну кількість часу, що робити? Скільки часу я повинен затримуватися, перш ніж надсилати подальше повідомлення? Якщо я надішлю наступне повідомлення, чи вони сприймуть це як дружнє нагадування, чи вони будуть відчувати роздратування? Як слід сформулювати наступне повідомлення, щоб не натрапити на занадто самонадійне (адже якщо мережа насправді відкинула попереднє повідомлення, то це перше, що вони чують від мене)?
Характер цих питань залежить від людей та контексту. Гарантійних відповідей немає. Але знову ж таки, нам не потрібні гарантії для успіху. Все, що нам потрібно, - це такі речі, як самоаналіз, співпереживання та здатність вчитися на досвіді. Ми можемо виявити та розробити власні унікальні стратегії - які цілком можуть відрізнятися від інших - які дозволяють нам з часом стати кращими комунікаторами.
Чи можете ви дати мені точне значення pi у десятковій нотації? Ми люди округлі та приблизні, коли знаємо, що точне значення є нерозв'язним.
Доказ свідчить лише про те, що неможливо розробити протокол, який надійно вирішує проблему (тобто ідеально у кожному випадку).
Це не говорить про те, що неможливо розробити протокол, який в основному вирішує проблему. Люди, будучи байєсовими за своєю природою, досить добре розробляють протоколи, які вирішують дану проблему з певним ступенем якості та / або певним ступенем успіху, який задовільний з точки зору прибутків і втрат у довгостроковій перспективі.