У розподілених обчисленнях, вибір лідера є процесом позначення одного процесу як організатора деякого завдання, розподіленого між декількома комп'ютерами (вузлами). Перш ніж розпочати завдання, всі вузли мережі або не знають, який вузол буде виконувати роль «лідера» (або координатора) завдання, або ці вузли не можуть спілкуватися з поточним координатором. Проте після запуску алгоритму вибору лідера кожен вузол у мережі визначає один особливий, унікальний вузол і сприймає його як лідера завдання.
Вузли мережі спілкуються між собою, щоб вирішити, який з них отримає статус «лідеру». Для цього вони використовують певний метод (алгоритм), щоб розірвати симетрію серед них (назначити одному з них особливий статус). Наприклад, якщо кожен вузол має унікальні та порівнянні ідентичності, то вузли можуть порівнювати свої ідентичності і вирішувати, що вузол з найвищою ідентичністю є лідером.
Формулювання цієї проблеми часто приписується ЛеЛану (англ. LeLann), який сформулював її як метод створення нового маркера в мережі маркерів кільця, в якому маркер був втрачений.
Алгоритми виборів лідерів розроблені так, щоб бути максимально ефективними з точки зору загальної кількості переданих байтів і часу прийняття рішення. Алгоритм, запропонований Галлагером, Хумблетом і Спірою для загальних неорієнтованих графів, справив сильний вплив на розробку розподілених алгоритмів загалом, і отримав премію Дейкстри за значний внесок в розподілені обчислення.
Багато інших алгоритмів були запропоновані для різних типів мережевих графів, таких як неорієнтовані кільця, односпрямовані кільця, повні графи, сітки, напрямлені графи Ейлера та інші. Загальний метод, який відокремлює проблему з сімейства графів від проектування алгоритму виборів лідера, був запропонований Корахом, [en] і [en].
Визначення
Задача вибору лідера полягає в тому, щоб кожен процесор на кінець роботи алгоритму вирішив, чи є він лідером, чи ні, за умови, що тільки один процесор вирішує, що він є лідером. Алгоритм здатен вирішити задачу вибору лідера, якщо:
- У процесорів є два стани відносно лідерства «обраний лідером» або «не обраний лідером». Після того, як процесор стає обраним він ним і залишається (аналогічним чином, якщо він не був обраним).
- При кожному виконанні алгоритму обирається тільки один процесор, як лідер, решта процесорів визначають, що вони не були обрані.
Дійсний алгоритм вибору лідера повинен відповідати наступним умовам:
- Скінченність: алгоритм повинен закінчитися протягом обмеженого часу після вибору лідера. У підходах, що базуються на випадковості ця умова іноді заміняється певною іншою умовою (наприклад, вимагає припинення з ймовірністю 1).
- Унікальність: є лише один процесор, який вважає себе лідером.
- Узгодженість: всі інші процесори знають, хто є лідером.
Алгоритм вибору лідера може змінюватися в наступних аспектах:
- Механізм зв'язку: процесори можуть бути або синхронізовані (процесори синхронізуються тактовим сигналом), або [en], де процесори мають різну тактову частоту.
- Імена процесів: процеси можуть мати унікальну ідентичність або не відрізнятися один від одного (в такому випадку вони називаються анонімними).
- Топологія мережі: наприклад, кільце, ациклічний граф або повний граф.
- Розмір мережі: алгоритм може використовувати або може не використовувати знання про кількість процесорів у системі.
Алгоритми
Вибір лідера в кільцях
Кільцева мережа являє собою топологію зв'язаного графа, в якій кожен вузол точно з'єднаний з двома іншими вузлами, тобто для графа з n вузлами є рівно n ребер, що з'єднують вузли. Кільце може бути односпрямованим, тобто процесори здійснюють зв'язок лише в одному напрямку (вузол може надсилати повідомлення лише ліворуч або надсилати повідомлення лише праворуч), або двонаправлений, тобто процесори можуть передавати та отримувати повідомлення в обох напрямках (кожен вузол може передавати та отримувати повідомлення в обох напрямках, надсилати повідомлення ліворуч і праворуч).
Анонімні кільця
Анонімним є те кільце в якому кожен процесор ідентичний. Більш формально, система має один і той же автомат для кожного процесора. Не існує детермінованого алгоритму для вибору лідера в анонімних кільцях, навіть якщо розмір мережі відомий процесорам. Це пов'язано з тим, що не існує можливості порушення симетрії в анонімному кільці, якщо всі процесори працюють з однаковою швидкістю. Стан процесорів після деяких кроків залежить тільки від початкового стану сусідніх вузлів. Тому, оскільки їхні стани ідентичні і виконують ті ж самі процедури, на кожному кроці кожен процесор посилає ті самі повідомлення. Таким чином, кожний стан процесора також змінюється тотожним чином, і в результаті, якщо один процесор обраний лідером, то всі інші також мають бути обрані лідером.
Для простоти доведемо це твердження в анонімних синхронних кільцях. Доведення протиріччям. Розглянемо анонімне кільце R з розміром n>1. Припустимо, що існує алгоритм «А» для вирішення виборів лідера в цьому анонімному кільці R.
- Лема: після проходів виконання алгоритму A в R, всі процеси мають однакові стани.
Доказ. проводиться за допомогою індукції по .
База індукції: : всі процесори знаходяться в початковому стані, тому всі процесори однакові.
Індукційний перехід: припустимо, що лема виконується для раундів.
Індуктивний крок: на кроці , кожен процесор посилає одне і те ж повідомлення праворуч і посилає те саме повідомлення ліворуч. Оскільки всі процесори знаходяться в одному і тому ж стані після кроку , в раунді , кожен процесор отримає повідомлення з лівого краю, і отримає повідомлення з правого краю. Оскільки всі процесори отримують одне і те ж повідомлення на кроці , вони знаходяться в одному і тому ж стані після кроку .
Лема, наведена вище, суперечить тому, що після деякого кінцевого числа раундів у виконанні А один процесор отримав би стан «обраний лідером», а інші процесори отримали б стан «не обраний».
Увипадковлені алгоритми вибору лідера
Загальним підходом до вирішення проблеми виборів лідера в анонімних кільцях є використання увипадковлених алгоритмів. У таких підходах, як правило, процесори беруть на себе деякі ідентичності на основі ймовірнісної функції і передають їх іншим мережам. Наприкінці, за допомогою застосування алгоритму, вибирається лідер (з високою ймовірністю).
Асинхронне кільце
Оскільки не існує алгоритму для анонімних кілець (доведено вище), асинхронні кільця будуть розглядатися як асинхронні не анонімні кільця. У не анонімних кільцях кожен процесор має унікальний ідентифікатор, і вони не знають розмір кільця до початку роботи алгоритму. Вибір лідера в асинхронних кільцях може бути вирішений за допомогою певного алгоритму з використанням повідомлень або повідомлень.
У алгоритмі кожен процесор надсилає повідомлення зі своїм ідентифікатором до лівого краю. Потім чекає, поки з'явиться повідомлення з правого краю. Якщо ідентифікатор в повідомленні більше, ніж його власний ідентифікатор, то він пересилає це повідомлення знову до лівого краю; інакше він ігнорує повідомлення, і нічого не робить. Якщо ідентифікатор в повідомленні дорівнює його власному ідентифікатору, то він відправляє повідомлення ліворуч, яке оголошує цей вузол обраним. Інші процесори передають оголошення ліворуч і перетворюються на не обраних. Зрозуміло, що для цього алгоритму верхня межа є .
У алгоритмі алгоритм працює по фазах. На -й фазі, процесор визначатиме, чи є він переможцем серед сусідів з лівої і з правої сторони. Якщо це переможець, то процесор може перейти до наступного етапу. У фазі кожен процесор повинен визначити себе як переможця чи ні, відправивши повідомлення з його ідентифікатором до лівого і правого сусідів (сусіди не пересилали це повідомлення). Сусід відповідає тільки, якщо ідентифікатор в повідомленні більше, ніж ідентифікатор сусіда, інакше відповідає . Якщо отримує два -и, один з лівого, один з правого, то є переможцем у фазі . На етапі , переможцям фази необхідно надіслати повідомлення з його ідентифікатором лівим і правим сусідам. Якщо сусіди на шляху отримують ідентифікатор в повідомленні, більший, ніж їхній ідентифікатор, то вони пересилають повідомлення наступному сусіду, інакше повертають відповідь . Якщо -й сусід отримує ідентифікатор більший, ніж його ідентифікатор, то відправляє назад , інакше відправляє відповідь . Якщо процесор отримує два -и, то він є переможцем на етапі. На останньому етапі остаточний переможець отримає свій ідентифікатор у повідомленні, а потім припинить виконання алгоритму та надішле повідомлення про закінчення іншим процесорам. У найгіршому випадку кожна фаза має не більше переможців, де — номер фази. У загальній складності знаходяться фази . Кожен переможець надсилає в порядку повідомлень на кожній фазі. Отже, складність повідомлень є .
Синхронізовані кільця
У книзі «Розподілені обчислення» Аттія та Уельч описали неоднорідний алгоритм, який використовує повідомлення в синхронному кільці з відомим розміром кільця . Алгоритм працює по фазах, кожна фаза має вигляд кроків, кожен крок є одиницею часу. У фазі , якщо є процес з , то процес посилає повідомлення завершення інших процесорів (вартість відправлення повідомлення завершення кроків). Інакше, переходимо до наступного етапу. Алгоритм перевірить, чи є номер фази, що дорівнює ідентифікатору процесору, потім робить ті ж кроки, що і фаза . Наприкінці виконання мінімальний ідентифікатор буде обраний лідером. Він використав точно повідомлень та кроків.
Ітай та Роде ввели алгоритм односпрямованого кільця з синхронізованими процесорами. Вони припускають, що розміри кільця (кількість вузлів) відомі процесорам. Для кільця розміром n активні a≤n процесори. Кожен процесор вирішує з імовірністю a−1, чи стане він кандидатом. В кінці кожної фази кожен процесор обчислює кількість кандидатів c, і якщо він дорівнює 1, цей процесор стає лідером. Щоб визначити значення c, кожен кандидат посилає маркер (англ. pebble) на початку фази, який передається навколо кільця, повертаючи через рівно n одиниць часу своєму відправнику. Кожен процесор визначає c шляхом підрахунку кількості маркерів, які пройшли через нього. Цей алгоритм досягає виборів керівника з очікуваною складністю повідомлення . Аналогічний підхід також використовується, коли механізм тайм-ауту використовується для виявлення тупиків у системі. Існують також алгоритми для кілець спеціальних розмірів, таких як розміри простого числа і непарні розміри.
Однорідний алгоритм
У типових підходах до виборів лідера розмір кільця вважається відомим процесорам. У випадку анонімних кілець, без використання зовнішньої сутності, неможливо обрати лідера. Навіть якщо алгоритм існує, лідер не може визначити розмір кільця. Тобто в будь-якому анонімному кільці існує висока ймовірність того, що алгоритм обчислить неправильний розмір кільця. Щоб подолати цю проблему, Фішер і Цзян використовували так званого лідера-оракула Ω?, що кожен процесор може запитати, чи існує у кільці унікальний лідер. Вони показують, що з певної точки вгору гарантовано повертається однакова відповідь на всі процесори.
Кільця з унікальними ідентифікаторами
В одній з ранніх робіт Чанг і Робертс запропонували єдиний алгоритм, в якому процесор з найвищим ідентифікатором обирається в якості лідера. Кожен процесор посилає свій ідентифікатор за годинниковою стрілкою. Кожен процесор приймає повідомлення і порівнює його з власним. Якщо він більший, він посилає його далі, інакше він проігнорує повідомлення. Вони показують, що цей алгоритм використовує не більше O(n²) повідомлень і в середньому випадку. [en] удосконалили цей алгоритм з складністю повідомлень, ввівши 2-канальну схему передачі повідомлень, що дозволило процесорам надсилати повідомлення в обох напрямках.
Вибір лідера в решітці
Решітка є ще однією з популярних форм топології мереж, особливо в паралельних системах, резервних системах пам'яті та мережах взаємоз'єднань. У сітчастої структурі вузли — це кути (що мають тільки двох сусідів), межа (мають тільки по три сусіди) або внутрішність (середні вузли, що мають по чотири сусіди). Кількість ребер в сітці розміром a x b дорівнює m=2ab-a-b.
Неорієнтована сітка
Типовим алгоритмом для вирішення виборів лідера в неорієнтованій сітці є лише обрання одного з чотирьох кутових вузлів як лідера. Оскільки кутові вузли можуть не знати про стан інших процесорів, алгоритм повинен спочатку розбудити кутові вузли. Лідер може бути обраний наступним чином:
- Процес пробудження: k вузлів ініціюють процес вибору. Кожен ініціатор посилає повідомлення пробудження всім сусіднім вузлам. Якщо вузол не є ініціатором, він просто пересилає повідомлення на інші вузли. На цьому етапі відправляються не більше 3n+k повідомлень.
- Процес виборів: вибори у зовнішньому кільці здійснюються не більше як в два етапи з 6(a+b)-16 повідомлень.
- Припинення: лідер відправляє повідомлення завершення до всіх вузлів. Це вимагає не більше 2n повідомлень.
Складність повідомлення не більше 6(a + b) - 16, і якщо сітка квадратної форми, .
Орієнтована сітка
Орієнтована сітка — це особливий випадок, коли номери портів — це компас, тобто північ, південь, схід і захід. Вибір лідеру в орієнтованій сітці тривіальний. Нам потрібно лише призначити кут, наприклад, «Північ» і «схід» і переконайтеся, що вузол знає, що він став лідером.
Роздута решітка
Особливим випадком сітчастої архітектури є тор (англ. torus), який є сіткою з «обгортаннями». У цій структурі кожен вузол має рівно по 4 з'єднувальні ребра. Один з підходів до обрання лідера в такій структурі називається етапами виборів. Подібно до процедур у кільцевих структурах, цей метод на кожному етапі виключає потенційних кандидатів доки не залишиться один з кандидатів. Цей вузол стає лідером, а потім повідомляє всім іншим процесорам про припинення. Цей підхід може бути використаний для досягнення складності O(n). Існують також більш практичні підходи, що застосовуються для боротьби з наявністю несправних ланок у мережі.
Вибір в гіперкубі
Гіперкуб Hk — це мережа, що складається з n=2k вузлів, кожен зі ступенем k та ребер. Для вирішення проблеми обрання лідера в даному випадку можна застосовувати раніше розглянуті алгоритми. На кожному етапі змагаються два вузли (які називаються дуелянтами), а переможець переходить до наступного етапу. Це означає, що на кожному етапі тільки половина дуелянтів виходить на наступний етап. Ця процедура триває, поки не залишиться лише один дуелянт, і він стає лідером. Після вибору він повідомляє про це всі інші процесори. Цей алгоритм вимагає O(n) повідомлень. У випадку неорієнтованого гіперкуба можна використовувати аналогічний підхід, але з більш високою складністю повідомлення .
Вибір в повних мережах
Повні мережі є структурами, в яких всі процесори з'єднані один з одним, тобто ступінь кожного вузла n-1, де n — це розмір мережі. Оптимальне рішення досягається з O(n) повідомленням та відомою просторовою складністю. У цьому алгоритмі процесори мають наступні стани:
- Манекен: вузли, які не беруть участі в алгоритмі вибору лідера.
- Пасивний: початковий стан процесів перед запуском.
- Кандидат: статус вузлів після пробудження. Здатними стати лідером будуть вважатися кандидатські вузли.
Для вибору лідера в мережі розглядається віртуальне кільце. Всі процесори спочатку ініціюються пасивним станом, поки вони не прокинуться. Як тільки вузли прокинулися, вони є кандидатами, щоб стати лідером. На основі схеми пріоритету вузли-кандидати співпрацюють у віртуальному кільці. У певний момент кандидати дізнаються про ідентичність кандидатів, які передують їм в кільці. Кандидати з вищим пріоритетом запитують нижчих про своїх попередників. Кандидати з більш низьким пріоритетом стають манекенами після того, як вони відповіли кандидатам з вищим пріоритетом. Виходячи з цієї схеми, кандидат з найвищим пріоритетом в кінцевому підсумку знає, що всі вузли в системі — це манекени, крім себе, і в цей момент він дізнається, що він став лідером.
Універсальні методи вибору лідера
Як випливає з назви, ці алгоритми призначені для використання в будь-якій формі технологічних мереж без будь-яких попередніх знань топології мережі або її властивостей, таких, наприклад, як її розмір.
Крик
Крик (англ. Shout) (протокол) створює кістякове дерево на загальному графі і обирає свій корінь як лідера. Алгоритм має лінійну загальну вартість по краях потужності.
Над-злиття
Ця методика [en] по суті схожа на пошук мінімального кістякового дерева, в якому корінь дерева стає лідером. Основна ідея цього методу полягає в тому, що окремі вузли зливаються один з одним для формування великих структур. Результатом цього алгоритму є дерево (граф без циклу), корінь якого є лідером всієї системи. Вартість методу над-злиття є де m — число ребер і n — кількість вузлів.
Йо-йо
[en] є мінімальним алгоритмом пошуку, що складається з двох частин: фази попередньої обробки і послідовних ітерацій. На першій фазі або установці кожен вузол обмінюється своїм ідентифікатором з усіма своїми сусідами і засновується на значенні своїх орієнтованих ребер. Наприклад, якщо вузол x має менший ідентифікатор, ніж y, x орієнтується на y. Якщо вузол має менший ідентифікатор, ніж всі його сусіди, він стає джерелом. Навпаки, вузол з усіма внутрішніми ребрами (тобто з ідентифікатором більшим, ніж усі його сусіди) є стоком. Всі інші вузли є внутрішніми вузлами. Після того, як всі ребра орієнтовані, починається фаза ітерації. Кожна ітерація є виборчим етапом, коли деякі кандидати будуть видалені. Кожна ітерація має дві фази: Йо- і -йо. У цій фазі джерела починають процес розповсюдження до кожного стоку найменших значень джерел, з'єднаних зі стоком.
Йо-
- Джерело (місцевий мінімуми) передає своє значення усім своїм сусідам
- Внутрішній вузол чекає на отримання значення від усіх своїх сусідів. Він обчислює мінімум і відправляє його до сусіда.
- Стік (вузол без вихідного ребра) отримує всі значення і обчислює їх мінімум.
-йо
- Стік посилає ТАК до сусідів, з від яких вона отримала найменше значення, а НІ — іншим
- Внутрішній вузол відправляє ТАК всім сусідам, з від яких він отримав найменше значення, і НІ — іншим. Якщо він отримує тільки один НІ, він посилає НІ всім.
- Джерело чекає, поки не отримає всі голоси. Якщо всі голоси — ТАК, цей вузол залишається, і якщо наявні голоси НІ, то цей вузол вже не є кандидатом.
- Коли вузол x посилає НІ до сусіда y, логічний напрямок цього ребра змінюється на протилежний.
- Коли вузол y отримує НІ від зовнішнього сусіда, він перевертає напрямок цього посилання.
Після завершального етапу будь-яке джерело, що отримує НІ, більше не є джерелом і стає стоком. Додаткова стадія, обрізка, також вводиться для видалення непридатних вузлів, тобто їх існування не впливає на наступні ітерації.
- Якщо стік є листом, то він не має сенсу і тому відкидається.
- Якщо в Йо-фазі вузол отримав одне і те ж значення від більш ніж одного сусіда, він запитає всіх, крім одного, видалити зв'язки з ним.
Цей метод має загальну вартість повідомлень . Його реальна складність повідомлення, включаючи обрізку, є відкритою проблемою дослідження і залишається невідомою.
Застосування
Радіо мережі
У протоколах радіомережі вибори лідера часто використовуються як перший крок для підходу до більш просунутих примітивів зв'язку, таких як збір повідомлень або трансляція. Сама природа бездротових мереж індукує зіткнення, коли суміжні вузли передаються одночасно; обрання лідера дозволяє краще координувати цей процес. Хоча відстань D мережі є природною нижньою межею часу, необхідного для вибору лідера, верхня і нижня межі проблеми вибору лідера залежать від конкретної досліджуваної моделі радіозв'язку.
Моделі та середовище виконання
У радіомережах n вузлів на кожному кроці можуть або передавати, або отримувати повідомлення. Якщо не виявлено зіткнень, то вузол не може відокремлювати мовчання або прийняття більше одного повідомлення за один раз. Якщо виявлено зіткнення, то вузол може одночасно виявити більше одного вхідного повідомлення, навіть якщо самі повідомлення не можуть бути декодовані в цьому випадку. У звуковій моделі вузли можуть розрізняти лише тишу або принаймні одне повідомлення через [en].
Відомі режими роботи для [en] мереж варіюються від постійної (очікуваної з виявленням зіткнення) до O(n log n) кроків (детермінований і без виявлення зіткнень). У [en] мережах відомі періоди виконання відрізняються від грубо O((D+ log n)(log² log n)) кроків (з високою ймовірністю в моделі звукового сигналу), O(D log n) (детермінований в звуковій моделі), O(n) (детермінований з виявленням зіткнення) до O(n log3/2 n (log log n)0.5) кроків (детермінований і без виявлення зіткнень).
Див. також
Примітки
- , P. A. Humblet, and P. M. Spira (January 1983). A Distributed Algorithm for Minimum-Weight Spanning Trees (PDF). ACM Transactions on Programming Languages and Systems. 5 (1): 66—77. doi:10.1145/357195.357200. Архів оригіналу (PDF) за 12 жовтня 2016. Процитовано 26 березня 2019.
- Ephraim Korach, Shay Kutten, (1990). A Modular Technique for the Design of Efficient Distributed Leader Finding Algorithms. ACM Transactions on Programming Languages and Systems. 12 (1): 84—101. CiteSeerX 10.1.1.139.7342. doi:10.1145/77606.77610.
- H. Attiya and J. Welch, Distributed Computing: Fundamentals, Simulations and Advance Topics, John Wiley & Sons inc., 2004, chap. 3
- I. Gupta, R. van Renesse, and K. P. Birman,2000, A Probabilistically Correct Leader Election Protocol for Large Groups, Technical Report , Cornell University
- R. Bakhshi, W. Fokkink, J. pang, and J. Van de Pol, c2008 «Leader Election in Anonymous Rings: Franklin Goes Probabilistic», TCS, Vol. 273, pp. 57-72.
- H. Attiya and M. Snir, 1988,"Computing on an anonymous ring",JACM,Vol. 35, issue. 4, pp. 845—875
- A. Itai and M. Rodeh, 1990,"Symmetry breaking in distributed networks", Vol. 88, issue 1, pp. 60-87.
- L. Higham and S. Myers, 1998, «Self-Stabilizing Token Circulation on Anonymous Message Passing Rings», Second International Conference On Principles Of DIstributed Systems.
- G. Itkis, C. Lin, and J. Simon,1995,"Deterministic, constant space, self-stabilizing leader election on uniform rings.", In Proc. 9th Workshop on Distributed Algorithms, Vol. 972, pp. 288—302.
- J. Burns and J. Pachl,1989,"Uniform self-stabilizing rings",ACM Trans. Program. Lang. Systems, Vol. 11, issue. 2, pp.330-344
- T. Herman, 1990, «Probabilistic self-stabilization», Inf. Process. Lett., Vol. 35, issue 2, pp.63-67.
- G. Tel,Introduction to Distributed Algorithms. Cambridge University Press, 2000.2nd edition
- M. Fischer and H. Jiang, 2006,"Self-stabilizing leader election in networks of _nite-state anonymous agents", In Proc. 10th Conf. on Principles of Distributed Systems,Vol. 4305, pp. 395—409.
- E. Chang and R. Roberts, 1979, «An improved algorithm for decentralized extrema-finding in circular configurations of processes», ACM, Vol. 22, issue 5, pp. 281—283.
- D. S. Hirschberg and J. B. Sinclair, 1980, «Decentralized extrema-finding in circular configurations of processors», ACM, Vol. 23, issue 11, pp. 627—628.
- N. Santoro, Design and Analysis of Distributed Algorithms, Wiley, 2006.
- H. Kallasjoki, 2007, «Election in Mesh, Cube and Complete Networks», Seminar on Theoretical Computer Science.
- M. Refai, A. Sharieh and . Alsmmari, 2010, «Leader Election Algorithm in 2D Torus Network with the Presence of One Link Failure», The International Arab Journal of Information Technology, Vol. 7, No. 2.
- M Al Refai,2014, «Dynamic Leader Election Algorithm in 2D Torus Network with Multi Links Failure», IJCST, Vol. 2, issue 5.
- J. Villadangos, A. Cordoba, F. Farina, and M. Prieto, 2005, «Efficient leader election in complete networks», PDP, pp.136-143.
- Haeupler, Bernhard; Ghaffari, Mohsen (2013). Near Optimal Leader Election in Multi-Hop Radio Networks. с. 748—766. arXiv:1210.8439. doi:10.1137/1.9781611973105.54. ISBN .
{{}}
: Проігноровано|journal=
()
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U rozpodilenih obchislennyah vibir lidera ye procesom poznachennya odnogo procesu yak organizatora deyakogo zavdannya rozpodilenogo mizh dekilkoma komp yuterami vuzlami Persh nizh rozpochati zavdannya vsi vuzli merezhi abo ne znayut yakij vuzol bude vikonuvati rol lidera abo koordinatora zavdannya abo ci vuzli ne mozhut spilkuvatisya z potochnim koordinatorom Prote pislya zapusku algoritmu viboru lidera kozhen vuzol u merezhi viznachaye odin osoblivij unikalnij vuzol i sprijmaye jogo yak lidera zavdannya Vuzli merezhi spilkuyutsya mizh soboyu shob virishiti yakij z nih otrimaye status lideru Dlya cogo voni vikoristovuyut pevnij metod algoritm shob rozirvati simetriyu sered nih naznachiti odnomu z nih osoblivij status Napriklad yaksho kozhen vuzol maye unikalni ta porivnyanni identichnosti to vuzli mozhut porivnyuvati svoyi identichnosti i virishuvati sho vuzol z najvishoyu identichnistyu ye liderom Formulyuvannya ciyeyi problemi chasto pripisuyetsya LeLanu angl LeLann yakij sformulyuvav yiyi yak metod stvorennya novogo markera v merezhi markeriv kilcya v yakomu marker buv vtrachenij Algoritmi viboriv lideriv rozrobleni tak shob buti maksimalno efektivnimi z tochki zoru zagalnoyi kilkosti peredanih bajtiv i chasu prijnyattya rishennya Algoritm zaproponovanij Gallagerom Humbletom i Spiroyu dlya zagalnih neoriyentovanih grafiv spraviv silnij vpliv na rozrobku rozpodilenih algoritmiv zagalom i otrimav premiyu Dejkstri za znachnij vnesok v rozpodileni obchislennya Bagato inshih algoritmiv buli zaproponovani dlya riznih tipiv merezhevih grafiv takih yak neoriyentovani kilcya odnospryamovani kilcya povni grafi sitki napryamleni grafi Ejlera ta inshi Zagalnij metod yakij vidokremlyuye problemu z simejstva grafiv vid proektuvannya algoritmu viboriv lidera buv zaproponovanij Korahom en i en ViznachennyaZadacha viboru lidera polyagaye v tomu shob kozhen procesor na kinec roboti algoritmu virishiv chi ye vin liderom chi ni za umovi sho tilki odin procesor virishuye sho vin ye liderom Algoritm zdaten virishiti zadachu viboru lidera yaksho U procesoriv ye dva stani vidnosno liderstva obranij liderom abo ne obranij liderom Pislya togo yak procesor staye obranim vin nim i zalishayetsya analogichnim chinom yaksho vin ne buv obranim Pri kozhnomu vikonanni algoritmu obirayetsya tilki odin procesor yak lider reshta procesoriv viznachayut sho voni ne buli obrani Dijsnij algoritm viboru lidera povinen vidpovidati nastupnim umovam Skinchennist algoritm povinen zakinchitisya protyagom obmezhenogo chasu pislya viboru lidera U pidhodah sho bazuyutsya na vipadkovosti cya umova inodi zaminyayetsya pevnoyu inshoyu umovoyu napriklad vimagaye pripinennya z jmovirnistyu 1 Unikalnist ye lishe odin procesor yakij vvazhaye sebe liderom Uzgodzhenist vsi inshi procesori znayut hto ye liderom Algoritm viboru lidera mozhe zminyuvatisya v nastupnih aspektah Mehanizm zv yazku procesori mozhut buti abo sinhronizovani procesori sinhronizuyutsya taktovim signalom abo en de procesori mayut riznu taktovu chastotu Imena procesiv procesi mozhut mati unikalnu identichnist abo ne vidriznyatisya odin vid odnogo v takomu vipadku voni nazivayutsya anonimnimi Topologiya merezhi napriklad kilce aciklichnij graf abo povnij graf Rozmir merezhi algoritm mozhe vikoristovuvati abo mozhe ne vikoristovuvati znannya pro kilkist procesoriv u sistemi AlgoritmiVibir lidera v kilcyah Topologiya kilcevoyi merezhi Kilceva merezha yavlyaye soboyu topologiyu zv yazanogo grafa v yakij kozhen vuzol tochno z yednanij z dvoma inshimi vuzlami tobto dlya grafa z n vuzlami ye rivno n reber sho z yednuyut vuzli Kilce mozhe buti odnospryamovanim tobto procesori zdijsnyuyut zv yazok lishe v odnomu napryamku vuzol mozhe nadsilati povidomlennya lishe livoruch abo nadsilati povidomlennya lishe pravoruch abo dvonapravlenij tobto procesori mozhut peredavati ta otrimuvati povidomlennya v oboh napryamkah kozhen vuzol mozhe peredavati ta otrimuvati povidomlennya v oboh napryamkah nadsilati povidomlennya livoruch i pravoruch Anonimni kilcya Anonimnim ye te kilce v yakomu kozhen procesor identichnij Bilsh formalno sistema maye odin i toj zhe avtomat dlya kozhnogo procesora Ne isnuye determinovanogo algoritmu dlya viboru lidera v anonimnih kilcyah navit yaksho rozmir merezhi vidomij procesoram Ce pov yazano z tim sho ne isnuye mozhlivosti porushennya simetriyi v anonimnomu kilci yaksho vsi procesori pracyuyut z odnakovoyu shvidkistyu Stan procesoriv pislya deyakih krokiv zalezhit tilki vid pochatkovogo stanu susidnih vuzliv Tomu oskilki yihni stani identichni i vikonuyut ti zh sami proceduri na kozhnomu kroci kozhen procesor posilaye ti sami povidomlennya Takim chinom kozhnij stan procesora takozh zminyuyetsya totozhnim chinom i v rezultati yaksho odin procesor obranij liderom to vsi inshi takozh mayut buti obrani liderom Dlya prostoti dovedemo ce tverdzhennya v anonimnih sinhronnih kilcyah Dovedennya protirichchyam Rozglyanemo anonimne kilce R z rozmirom n gt 1 Pripustimo sho isnuye algoritm A dlya virishennya viboriv lidera v comu anonimnomu kilci R Lema pislya k displaystyle k prohodiv vikonannya algoritmu A v R vsi procesi mayut odnakovi stani Dokaz provoditsya za dopomogoyu indukciyi po k displaystyle k Baza indukciyi k 0 displaystyle k 0 vsi procesori znahodyatsya v pochatkovomu stani tomu vsi procesori odnakovi Indukcijnij perehid pripustimo sho lema vikonuyetsya dlya k 1 displaystyle k 1 raundiv Induktivnij krok na kroci k displaystyle k kozhen procesor posilaye odne i te zh povidomlennya m r displaystyle m r pravoruch i posilaye te same povidomlennya m l displaystyle m l livoruch Oskilki vsi procesori znahodyatsya v odnomu i tomu zh stani pislya kroku k 1 displaystyle k 1 v raundi k displaystyle k kozhen procesor otrimaye povidomlennya m r displaystyle m r z livogo krayu i otrimaye povidomlennya m l displaystyle m l z pravogo krayu Oskilki vsi procesori otrimuyut odne i te zh povidomlennya na kroci k displaystyle k voni znahodyatsya v odnomu i tomu zh stani pislya kroku k displaystyle k Lema navedena vishe superechit tomu sho pislya deyakogo kincevogo chisla raundiv u vikonanni A odin procesor otrimav bi stan obranij liderom a inshi procesori otrimali b stan ne obranij Uvipadkovleni algoritmi viboru lidera Zagalnim pidhodom do virishennya problemi viboriv lidera v anonimnih kilcyah ye vikoristannya uvipadkovlenih algoritmiv U takih pidhodah yak pravilo procesori berut na sebe deyaki identichnosti na osnovi jmovirnisnoyi funkciyi i peredayut yih inshim merezham Naprikinci za dopomogoyu zastosuvannya algoritmu vibirayetsya lider z visokoyu jmovirnistyu Asinhronne kilce O nlogn algoritm dlya asinhronnih kilec Oskilki ne isnuye algoritmu dlya anonimnih kilec dovedeno vishe asinhronni kilcya budut rozglyadatisya yak asinhronni ne anonimni kilcya U ne anonimnih kilcyah kozhen procesor maye unikalnij identifikator i voni ne znayut rozmir kilcya do pochatku roboti algoritmu Vibir lidera v asinhronnih kilcyah mozhe buti virishenij za dopomogoyu pevnogo algoritmu z vikoristannyam O n 2 displaystyle O n 2 povidomlen abo O n log n displaystyle O n log n povidomlen U algoritmi O n 2 displaystyle O n 2 kozhen procesor nadsilaye povidomlennya zi svoyim identifikatorom do livogo krayu Potim chekaye poki z yavitsya povidomlennya z pravogo krayu Yaksho identifikator v povidomlenni bilshe nizh jogo vlasnij identifikator to vin peresilaye ce povidomlennya znovu do livogo krayu inakshe vin ignoruye povidomlennya i nichogo ne robit Yaksho identifikator v povidomlenni dorivnyuye jogo vlasnomu identifikatoru to vin vidpravlyaye povidomlennya livoruch yake ogoloshuye cej vuzol obranim Inshi procesori peredayut ogoloshennya livoruch i peretvoryuyutsya na ne obranih Zrozumilo sho dlya cogo algoritmu verhnya mezha ye O n 2 displaystyle O n 2 U algoritmi O n log n displaystyle O n log n algoritm pracyuye po fazah Na k displaystyle k j fazi procesor viznachatime chi ye vin peremozhcem sered susidiv z livoyi 2 k displaystyle 2 k i z pravoyi 2 k displaystyle 2 k storoni Yaksho ce peremozhec to procesor mozhe perejti do nastupnogo etapu U fazi 0 displaystyle 0 kozhen procesor P displaystyle P povinen viznachiti sebe yak peremozhcya chi ni vidpravivshi povidomlennya z jogo identifikatorom do livogo i pravogo susidiv susidi ne peresilali ce povidomlennya Susid vidpovidaye A C K displaystyle ACK tilki yaksho identifikator v povidomlenni bilshe nizh identifikator susida inakshe vidpovidaye A C K f a u l t displaystyle ACK fault Yaksho P displaystyle P otrimuye dva A C K displaystyle ACK i odin z livogo odin z pravogo to P displaystyle P ye peremozhcem u fazi 0 displaystyle 0 Na etapi k displaystyle k peremozhcyam fazi k 1 displaystyle k 1 neobhidno nadislati povidomlennya z jogo identifikatorom 2 k displaystyle 2 k livim i 2 k displaystyle 2 k pravim susidam Yaksho susidi na shlyahu otrimuyut identifikator v povidomlenni bilshij nizh yihnij identifikator to voni peresilayut povidomlennya nastupnomu susidu inakshe povertayut vidpovid A C K f a u l t displaystyle ACK fault Yaksho 2 k displaystyle 2 k j susid otrimuye identifikator bilshij nizh jogo identifikator to vidpravlyaye nazad A C K displaystyle ACK inakshe vidpravlyaye vidpovid A C K f a u l t displaystyle ACK fault Yaksho procesor otrimuye dva A C K displaystyle ACK i to vin ye peremozhcem na k displaystyle k etapi Na ostannomu etapi ostatochnij peremozhec otrimaye svij identifikator u povidomlenni a potim pripinit vikonannya algoritmu ta nadishle povidomlennya pro zakinchennya inshim procesoram U najgirshomu vipadku kozhna faza maye ne bilshe n 2 k 1 displaystyle frac n 2 k 1 peremozhciv de k displaystyle k nomer fazi U zagalnij skladnosti znahodyatsya fazi log n 1 displaystyle lceil log n 1 rceil Kozhen peremozhec nadsilaye v poryadku 2 k displaystyle 2 k povidomlen na kozhnij fazi Otzhe skladnist povidomlen ye O n log n displaystyle O n log n Sinhronizovani kilcya U knizi Rozpodileni obchislennya Attiya ta Uelch opisali neodnoridnij algoritm yakij vikoristovuye povidomlennya O n displaystyle O n v sinhronnomu kilci z vidomim rozmirom kilcya n displaystyle n Algoritm pracyuye po fazah kozhna faza maye viglyad n displaystyle n krokiv kozhen krok ye odiniceyu chasu U fazi 0 displaystyle 0 yaksho ye proces z i d 0 displaystyle id 0 to proces 0 displaystyle 0 posilaye povidomlennya zavershennya inshih procesoriv vartist vidpravlennya povidomlennya zavershennya n displaystyle n krokiv Inakshe perehodimo do nastupnogo etapu Algoritm perevirit chi ye nomer fazi sho dorivnyuye identifikatoru procesoru potim robit ti zh kroki sho i faza 0 displaystyle 0 Naprikinci vikonannya minimalnij identifikator bude obranij liderom Vin vikoristav tochno n displaystyle n povidomlen ta n m i n i m u m i d 1 displaystyle n minimum id 1 krokiv Itaj ta Rode vveli algoritm odnospryamovanogo kilcya z sinhronizovanimi procesorami Voni pripuskayut sho rozmiri kilcya kilkist vuzliv vidomi procesoram Dlya kilcya rozmirom n aktivni a n procesori Kozhen procesor virishuye z imovirnistyu a 1 chi stane vin kandidatom V kinci kozhnoyi fazi kozhen procesor obchislyuye kilkist kandidativ c i yaksho vin dorivnyuye 1 cej procesor staye liderom Shob viznachiti znachennya c kozhen kandidat posilaye marker angl pebble na pochatku fazi yakij peredayetsya navkolo kilcya povertayuchi cherez rivno n odinic chasu svoyemu vidpravniku Kozhen procesor viznachaye c shlyahom pidrahunku kilkosti markeriv yaki projshli cherez nogo Cej algoritm dosyagaye viboriv kerivnika z ochikuvanoyu skladnistyu povidomlennya O n log n displaystyle O n log n Analogichnij pidhid takozh vikoristovuyetsya koli mehanizm tajm autu vikoristovuyetsya dlya viyavlennya tupikiv u sistemi Isnuyut takozh algoritmi dlya kilec specialnih rozmiriv takih yak rozmiri prostogo chisla i neparni rozmiri Odnoridnij algoritm U tipovih pidhodah do viboriv lidera rozmir kilcya vvazhayetsya vidomim procesoram U vipadku anonimnih kilec bez vikoristannya zovnishnoyi sutnosti nemozhlivo obrati lidera Navit yaksho algoritm isnuye lider ne mozhe viznachiti rozmir kilcya Tobto v bud yakomu anonimnomu kilci isnuye visoka jmovirnist togo sho algoritm obchislit nepravilnij rozmir kilcya Shob podolati cyu problemu Fisher i Czyan vikoristovuvali tak zvanogo lidera orakula W sho kozhen procesor mozhe zapitati chi isnuye u kilci unikalnij lider Voni pokazuyut sho z pevnoyi tochki vgoru garantovano povertayetsya odnakova vidpovid na vsi procesori Kilcya z unikalnimi identifikatorami V odnij z rannih robit Chang i Roberts zaproponuvali yedinij algoritm v yakomu procesor z najvishim identifikatorom obirayetsya v yakosti lidera Kozhen procesor posilaye svij identifikator za godinnikovoyu strilkoyu Kozhen procesor prijmaye povidomlennya i porivnyuye jogo z vlasnim Yaksho vin bilshij vin posilaye jogo dali inakshe vin proignoruye povidomlennya Voni pokazuyut sho cej algoritm vikoristovuye ne bilshe O n povidomlen i O n log n displaystyle O n log n v serednomu vipadku en udoskonalili cej algoritm z O n log n displaystyle O n log n skladnistyu povidomlen vvivshi 2 kanalnu shemu peredachi povidomlen sho dozvolilo procesoram nadsilati povidomlennya v oboh napryamkah Vibir lidera v reshitci Topologiya reshitchatoyi merezhi Chervoni vuzli oznachayut kuti sini granici i siri vnutrishni vuzli Reshitka ye she odniyeyu z populyarnih form topologiyi merezh osoblivo v paralelnih sistemah rezervnih sistemah pam yati ta merezhah vzayemoz yednan U sitchastoyi strukturi vuzli ce kuti sho mayut tilki dvoh susidiv mezha mayut tilki po tri susidi abo vnutrishnist seredni vuzli sho mayut po chotiri susidi Kilkist reber v sitci rozmirom a x b dorivnyuye m 2ab a b Neoriyentovana sitka Tipovim algoritmom dlya virishennya viboriv lidera v neoriyentovanij sitci ye lishe obrannya odnogo z chotiroh kutovih vuzliv yak lidera Oskilki kutovi vuzli mozhut ne znati pro stan inshih procesoriv algoritm povinen spochatku rozbuditi kutovi vuzli Lider mozhe buti obranij nastupnim chinom Proces probudzhennya k vuzliv iniciyuyut proces viboru Kozhen iniciator posilaye povidomlennya probudzhennya vsim susidnim vuzlam Yaksho vuzol ne ye iniciatorom vin prosto peresilaye povidomlennya na inshi vuzli Na comu etapi vidpravlyayutsya ne bilshe 3n k povidomlen Proces viboriv vibori u zovnishnomu kilci zdijsnyuyutsya ne bilshe yak v dva etapi z 6 a b 16 povidomlen Pripinennya lider vidpravlyaye povidomlennya zavershennya do vsih vuzliv Ce vimagaye ne bilshe 2n povidomlen Skladnist povidomlennya ne bilshe 6 a b 16 i yaksho sitka kvadratnoyi formi O n displaystyle O sqrt n Oriyentovana sitka Oriyentovana sitka ce osoblivij vipadok koli nomeri portiv ce kompas tobto pivnich pivden shid i zahid Vibir lideru v oriyentovanij sitci trivialnij Nam potribno lishe priznachiti kut napriklad Pivnich i shid i perekonajtesya sho vuzol znaye sho vin stav liderom Rozduta reshitka Struktura rozdutoyi reshitki Osoblivim vipadkom sitchastoyi arhitekturi ye tor angl torus yakij ye sitkoyu z obgortannyami U cij strukturi kozhen vuzol maye rivno po 4 z yednuvalni rebra Odin z pidhodiv do obrannya lidera v takij strukturi nazivayetsya etapami viboriv Podibno do procedur u kilcevih strukturah cej metod na kozhnomu etapi viklyuchaye potencijnih kandidativ doki ne zalishitsya odin z kandidativ Cej vuzol staye liderom a potim povidomlyaye vsim inshim procesoram pro pripinennya Cej pidhid mozhe buti vikoristanij dlya dosyagnennya skladnosti O n Isnuyut takozh bilsh praktichni pidhodi sho zastosovuyutsya dlya borotbi z nayavnistyu nespravnih lanok u merezhi Vibir v giperkubi Topologiya H 4 giperkubovoyi merezhi Giperkub Hk ce merezha sho skladayetsya z n 2k vuzliv kozhen zi stupenem k ta O n log n displaystyle O n log n reber Dlya virishennya problemi obrannya lidera v danomu vipadku mozhna zastosovuvati ranishe rozglyanuti algoritmi Na kozhnomu etapi zmagayutsya dva vuzli yaki nazivayutsya duelyantami a peremozhec perehodit do nastupnogo etapu Ce oznachaye sho na kozhnomu etapi tilki polovina duelyantiv vihodit na nastupnij etap Cya procedura trivaye poki ne zalishitsya lishe odin duelyant i vin staye liderom Pislya viboru vin povidomlyaye pro ce vsi inshi procesori Cej algoritm vimagaye O n povidomlen U vipadku neoriyentovanogo giperkuba mozhna vikoristovuvati analogichnij pidhid ale z bilsh visokoyu skladnistyu povidomlennya O n log log n displaystyle O n log log n Vibir v povnih merezhah Struktura povnoyi merezhi Povni merezhi ye strukturami v yakih vsi procesori z yednani odin z odnim tobto stupin kozhnogo vuzla n 1 de n ce rozmir merezhi Optimalne rishennya dosyagayetsya z O n povidomlennyam ta vidomoyu prostorovoyu skladnistyu U comu algoritmi procesori mayut nastupni stani Maneken vuzli yaki ne berut uchasti v algoritmi viboru lidera Pasivnij pochatkovij stan procesiv pered zapuskom Kandidat status vuzliv pislya probudzhennya Zdatnimi stati liderom budut vvazhatisya kandidatski vuzli Dlya viboru lidera v merezhi rozglyadayetsya virtualne kilce Vsi procesori spochatku iniciyuyutsya pasivnim stanom poki voni ne prokinutsya Yak tilki vuzli prokinulisya voni ye kandidatami shob stati liderom Na osnovi shemi prioritetu vuzli kandidati spivpracyuyut u virtualnomu kilci U pevnij moment kandidati diznayutsya pro identichnist kandidativ yaki pereduyut yim v kilci Kandidati z vishim prioritetom zapituyut nizhchih pro svoyih poperednikiv Kandidati z bilsh nizkim prioritetom stayut manekenami pislya togo yak voni vidpovili kandidatam z vishim prioritetom Vihodyachi z ciyeyi shemi kandidat z najvishim prioritetom v kincevomu pidsumku znaye sho vsi vuzli v sistemi ce manekeni krim sebe i v cej moment vin diznayetsya sho vin stav liderom Universalni metodi viboru lidera Yak viplivaye z nazvi ci algoritmi priznacheni dlya vikoristannya v bud yakij formi tehnologichnih merezh bez bud yakih poperednih znan topologiyi merezhi abo yiyi vlastivostej takih napriklad yak yiyi rozmir Krik Krik angl Shout protokol stvoryuye kistyakove derevo na zagalnomu grafi i obiraye svij korin yak lidera Algoritm maye linijnu zagalnu vartist po krayah potuzhnosti Nad zlittya Cya metodika en po suti shozha na poshuk minimalnogo kistyakovogo dereva v yakomu korin dereva staye liderom Osnovna ideya cogo metodu polyagaye v tomu sho okremi vuzli zlivayutsya odin z odnim dlya formuvannya velikih struktur Rezultatom cogo algoritmu ye derevo graf bez ciklu korin yakogo ye liderom vsiyeyi sistemi Vartist metodu nad zlittya ye O m n log n displaystyle O m n log n de m chislo reber i n kilkist vuzliv Jo jo Priklad roboti algoritmu Jo Jo a Merezha b Oriyentovana merezha pislya fazi nalashtuvannya c Jo faza v yakij znachennya dzherel prohodyat d Jo faza nadsilaye vidpovidi vid stokiv e onovlena struktura pislya fazi Jo en ye minimalnim algoritmom poshuku sho skladayetsya z dvoh chastin fazi poperednoyi obrobki i poslidovnih iteracij Na pershij fazi abo ustanovci kozhen vuzol obminyuyetsya svoyim identifikatorom z usima svoyimi susidami i zasnovuyetsya na znachenni svoyih oriyentovanih reber Napriklad yaksho vuzol x maye menshij identifikator nizh y x oriyentuyetsya na y Yaksho vuzol maye menshij identifikator nizh vsi jogo susidi vin staye dzherelom Navpaki vuzol z usima vnutrishnimi rebrami tobto z identifikatorom bilshim nizh usi jogo susidi ye stokom Vsi inshi vuzli ye vnutrishnimi vuzlami Pislya togo yak vsi rebra oriyentovani pochinayetsya faza iteraciyi Kozhna iteraciya ye viborchim etapom koli deyaki kandidati budut vidaleni Kozhna iteraciya maye dvi fazi Jo i jo U cij fazi dzherela pochinayut proces rozpovsyudzhennya do kozhnogo stoku najmenshih znachen dzherel z yednanih zi stokom Jo Dzherelo miscevij minimumi peredaye svoye znachennya usim svoyim susidam Vnutrishnij vuzol chekaye na otrimannya znachennya vid usih svoyih susidiv Vin obchislyuye minimum i vidpravlyaye jogo do susida Stik vuzol bez vihidnogo rebra otrimuye vsi znachennya i obchislyuye yih minimum jo Stik posilaye TAK do susidiv z vid yakih vona otrimala najmenshe znachennya a NI inshim Vnutrishnij vuzol vidpravlyaye TAK vsim susidam z vid yakih vin otrimav najmenshe znachennya i NI inshim Yaksho vin otrimuye tilki odin NI vin posilaye NI vsim Dzherelo chekaye poki ne otrimaye vsi golosi Yaksho vsi golosi TAK cej vuzol zalishayetsya i yaksho nayavni golosi NI to cej vuzol vzhe ne ye kandidatom Koli vuzol x posilaye NI do susida y logichnij napryamok cogo rebra zminyuyetsya na protilezhnij Koli vuzol y otrimuye NI vid zovnishnogo susida vin perevertaye napryamok cogo posilannya Pislya zavershalnogo etapu bud yake dzherelo sho otrimuye NI bilshe ne ye dzherelom i staye stokom Dodatkova stadiya obrizka takozh vvoditsya dlya vidalennya nepridatnih vuzliv tobto yih isnuvannya ne vplivaye na nastupni iteraciyi Yaksho stik ye listom to vin ne maye sensu i tomu vidkidayetsya Yaksho v Jo fazi vuzol otrimav odne i te zh znachennya vid bilsh nizh odnogo susida vin zapitaye vsih krim odnogo vidaliti zv yazki z nim Cej metod maye zagalnu vartist povidomlen O m log n displaystyle O m log n Jogo realna skladnist povidomlennya vklyuchayuchi obrizku ye vidkritoyu problemoyu doslidzhennya i zalishayetsya nevidomoyu ZastosuvannyaRadio merezhi U protokolah radiomerezhi vibori lidera chasto vikoristovuyutsya yak pershij krok dlya pidhodu do bilsh prosunutih primitiviv zv yazku takih yak zbir povidomlen abo translyaciya Sama priroda bezdrotovih merezh indukuye zitknennya koli sumizhni vuzli peredayutsya odnochasno obrannya lidera dozvolyaye krashe koordinuvati cej proces Hocha vidstan D merezhi ye prirodnoyu nizhnoyu mezheyu chasu neobhidnogo dlya viboru lidera verhnya i nizhnya mezhi problemi viboru lidera zalezhat vid konkretnoyi doslidzhuvanoyi modeli radiozv yazku Modeli ta seredovishe vikonannya U radiomerezhah n vuzliv na kozhnomu kroci mozhut abo peredavati abo otrimuvati povidomlennya Yaksho ne viyavleno zitknen to vuzol ne mozhe vidokremlyuvati movchannya abo prijnyattya bilshe odnogo povidomlennya za odin raz Yaksho viyavleno zitknennya to vuzol mozhe odnochasno viyaviti bilshe odnogo vhidnogo povidomlennya navit yaksho sami povidomlennya ne mozhut buti dekodovani v comu vipadku U zvukovij modeli vuzli mozhut rozriznyati lishe tishu abo prinajmni odne povidomlennya cherez en Vidomi rezhimi roboti dlya en merezh variyuyutsya vid postijnoyi ochikuvanoyi z viyavlennyam zitknennya do O n log n krokiv determinovanij i bez viyavlennya zitknen U en merezhah vidomi periodi vikonannya vidriznyayutsya vid grubo O D log n log log n krokiv z visokoyu jmovirnistyu v modeli zvukovogo signalu O D log n determinovanij v zvukovij modeli O n determinovanij z viyavlennyam zitknennya do O n log3 2 n log log n 0 5 krokiv determinovanij i bez viyavlennya zitknen Div takozhRozpodileni obchislennya Algoritm huligana Viborcha sistemaPrimitki P A Humblet and P M Spira January 1983 A Distributed Algorithm for Minimum Weight Spanning Trees PDF ACM Transactions on Programming Languages and Systems 5 1 66 77 doi 10 1145 357195 357200 Arhiv originalu PDF za 12 zhovtnya 2016 Procitovano 26 bereznya 2019 Ephraim Korach Shay Kutten 1990 A Modular Technique for the Design of Efficient Distributed Leader Finding Algorithms ACM Transactions on Programming Languages and Systems 12 1 84 101 CiteSeerX 10 1 1 139 7342 doi 10 1145 77606 77610 H Attiya and J Welch Distributed Computing Fundamentals Simulations and Advance Topics John Wiley amp Sons inc 2004 chap 3 I Gupta R van Renesse and K P Birman 2000 A Probabilistically Correct Leader Election Protocol for Large Groups Technical Report Cornell University R Bakhshi W Fokkink J pang and J Van de Pol c2008 Leader Election in Anonymous Rings Franklin Goes Probabilistic TCS Vol 273 pp 57 72 H Attiya and M Snir 1988 Computing on an anonymous ring JACM Vol 35 issue 4 pp 845 875 A Itai and M Rodeh 1990 Symmetry breaking in distributed networks Vol 88 issue 1 pp 60 87 L Higham and S Myers 1998 Self Stabilizing Token Circulation on Anonymous Message Passing Rings Second International Conference On Principles Of DIstributed Systems G Itkis C Lin and J Simon 1995 Deterministic constant space self stabilizing leader election on uniform rings In Proc 9th Workshop on Distributed Algorithms Vol 972 pp 288 302 J Burns and J Pachl 1989 Uniform self stabilizing rings ACM Trans Program Lang Systems Vol 11 issue 2 pp 330 344 T Herman 1990 Probabilistic self stabilization Inf Process Lett Vol 35 issue 2 pp 63 67 G Tel Introduction to Distributed Algorithms Cambridge University Press 2000 2nd edition M Fischer and H Jiang 2006 Self stabilizing leader election in networks of nite state anonymous agents In Proc 10th Conf on Principles of Distributed Systems Vol 4305 pp 395 409 E Chang and R Roberts 1979 An improved algorithm for decentralized extrema finding in circular configurations of processes ACM Vol 22 issue 5 pp 281 283 D S Hirschberg and J B Sinclair 1980 Decentralized extrema finding in circular configurations of processors ACM Vol 23 issue 11 pp 627 628 N Santoro Design and Analysis of Distributed Algorithms Wiley 2006 H Kallasjoki 2007 Election in Mesh Cube and Complete Networks Seminar on Theoretical Computer Science M Refai A Sharieh and Alsmmari 2010 Leader Election Algorithm in 2D Torus Network with the Presence of One Link Failure The International Arab Journal of Information Technology Vol 7 No 2 M Al Refai 2014 Dynamic Leader Election Algorithm in 2D Torus Network with Multi Links Failure IJCST Vol 2 issue 5 J Villadangos A Cordoba F Farina and M Prieto 2005 Efficient leader election in complete networks PDP pp 136 143 Haeupler Bernhard Ghaffari Mohsen 2013 Near Optimal Leader Election in Multi Hop Radio Networks s 748 766 arXiv 1210 8439 doi 10 1137 1 9781611973105 54 ISBN 978 1 61197 251 1 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite book title Shablon Cite book cite book a Proignorovano journal dovidka