Задача двох генералів (задача двох армій, проблема скоординованої атаки) — в обчислювальній техніці уявний експеримент, що ілюструє проблему синхронізації стану двох систем по ненадійному каналу зв'язку. Ця задача подібна на більш загальну задачу візантійських генералів, хоча і була сформульована пізніше за неї. Задача часто згадується на початку курсу комп'ютерних мереж (зокрема при розгляді протоколу TCP). Назву для цієї задачі придумав Джим Грей.
Визначення
Дві армії, кожна під проводом свого генерала, готуються до штурму міста. Табори армій розділені ворожою територією. Єдиним засобом зв'язку для генералів є відправка посильних через ворожу територію, де вони можуть бути перехоплені.
Для успішного штурму генерали повинні атакувати місто одночасно. Атака однією армією приречена на поразку. Потрібно розробити алгоритм обміну повідомленнями, що дозволяє кожному генералу бути впевненому в узгодженні часу атаки.
Ілюстрація проблеми
Перший генерал, відправивши повідомлення з часом атаки другому генералу, не може бути впевненим, що той його отримав, а ж поки не отримає від нього повідомлення у відповідь.
В свою чергу, другий генерал отримавши повідомлення з часом атаки і пославши повідомлення з підтвердженням, не може бути впевненим, що перший генерал отримає його підтвердження. Йому теж необхідне підтвердження доставки свого повідомлення.
Таким чином задача не має розв'язку.
Доведення від супротивного
Припустимо, що існує деяка мінімальна послідовність доставлених чи перехоплених повідомлень, що гарантує обом генералам впевненість в узгодженні часу штурму. Розглянемо останнє повідомлення цієї послідовності. Воно теж може бути перехоплене. В такому випадку його отримувач не буде мати підтвердження і може не розпочати атаку. В іншого ж генерала є впевненість в узгодженості дій, тому він розпочне атаку. Тобто, при існуванні алгоритму узгодження можлива ситуація поразки, що суперечить припущенню про існування алгоритму.
Інженерний підхід
Прагматичний підхід до розв'язку задачі не бореться з усуненням ненадійності каналу зв'язку, а зводить його до допустимого рівня.
Наприклад:
- зважаючи на те, що імовірність перехоплення низька, перший генерал відправляє 100 посильних і атакує, другий генерал атакує, якщо він отримує хоча б одного посильного.
Посилання
Ця стаття не містить . (квітень 2018) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zadacha dvoh generaliv zadacha dvoh armij problema skoordinovanoyi ataki v obchislyuvalnij tehnici uyavnij eksperiment sho ilyustruye problemu sinhronizaciyi stanu dvoh sistem po nenadijnomu kanalu zv yazku Cya zadacha podibna na bilsh zagalnu zadachu vizantijskih generaliv hocha i bula sformulovana piznishe za neyi Zadacha chasto zgaduyetsya na pochatku kursu komp yuternih merezh zokrema pri rozglyadi protokolu TCP Nazvu dlya ciyeyi zadachi pridumav Dzhim Grej ViznachennyaPosilni mizh armiyami A1 ta A2 mozhut buti perehopleni vorogom B Dvi armiyi kozhna pid provodom svogo generala gotuyutsya do shturmu mista Tabori armij rozdileni vorozhoyu teritoriyeyu Yedinim zasobom zv yazku dlya generaliv ye vidpravka posilnih cherez vorozhu teritoriyu de voni mozhut buti perehopleni Dlya uspishnogo shturmu generali povinni atakuvati misto odnochasno Ataka odniyeyu armiyeyu prirechena na porazku Potribno rozrobiti algoritm obminu povidomlennyami sho dozvolyaye kozhnomu generalu buti vpevnenomu v uzgodzhenni chasu ataki Ilyustraciya problemiPershij general vidpravivshi povidomlennya z chasom ataki drugomu generalu ne mozhe buti vpevnenim sho toj jogo otrimav a zh poki ne otrimaye vid nogo povidomlennya u vidpovid V svoyu chergu drugij general otrimavshi povidomlennya z chasom ataki i poslavshi povidomlennya z pidtverdzhennyam ne mozhe buti vpevnenim sho pershij general otrimaye jogo pidtverdzhennya Jomu tezh neobhidne pidtverdzhennya dostavki svogo povidomlennya Takim chinom zadacha ne maye rozv yazku Dovedennya vid suprotivnogoPripustimo sho isnuye deyaka minimalna poslidovnist dostavlenih chi perehoplenih povidomlen sho garantuye obom generalam vpevnenist v uzgodzhenni chasu shturmu Rozglyanemo ostannye povidomlennya ciyeyi poslidovnosti Vono tezh mozhe buti perehoplene V takomu vipadku jogo otrimuvach ne bude mati pidtverdzhennya i mozhe ne rozpochati ataku V inshogo zh generala ye vpevnenist v uzgodzhenosti dij tomu vin rozpochne ataku Tobto pri isnuvanni algoritmu uzgodzhennya mozhliva situaciya porazki sho superechit pripushennyu pro isnuvannya algoritmu Inzhenernij pidhidPragmatichnij pidhid do rozv yazku zadachi ne boretsya z usunennyam nenadijnosti kanalu zv yazku a zvodit jogo do dopustimogo rivnya Napriklad zvazhayuchi na te sho imovirnist perehoplennya nizka pershij general vidpravlyaye 100 posilnih i atakuye drugij general atakuye yaksho vin otrimuye hocha b odnogo posilnogo PosilannyaCya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2018