Алгоритм Марзулло (винайдений [en] в рамках своєї кандидатської дисертації в 1984 році) — це , що використовується для вибору більш точних джерел для оцінки точного часу з ряду джерел часу. Перероблена версія цього алгоритму, названа , є частиною мережевого протоколу часу (NTP).
Мета
Алгоритм Марзулло ефективний (в термінах часу) для отримання оптимального значення з набору оцінок з їх довірчими інтервалами, де оптимальне значення може лежати поза довірчим інтервалом для деяких джерел. Найкращою оцінкою слід вважати найменший інтервал, який відповідає найбільшій кількості джерел.
Припустимо, що ми маємо такі оцінки: 10 ± 2, 12 ± 1 і 11 ± 1 в інтервалах [8,12], [11,13] і [10,12]. Їх перетином буде інтервал [11,12] або точка 11.5 ± 0.5, що відповідає всім трьом джерелам.
Якщо натомість діапазони становлять [8,12], [11,13] та [14,15], то інтервал не відповідає всім цим значенням, але [11,12] відповідає найбільшій кількості джерел, а саме - двом.
Нарешті, якщо є діапазони [8,9], [8,12] та [10,12], то обидва інтервали [8,9] і [10,12] узгоджуються з найбільшою кількістю джерел. Ця процедура визначає інтервал. Якщо бажаний результат є найкращим значенням з цього інтервалу, тоді наївним підходом було б прийняти центр інтервалу як значення, яке було визначено в оригінальному алгоритмі Марзулло. Більш складний підхід визнав би, що це може викинути корисну інформацію з довірчих інтервалів джерел і що ймовірнісна модель джерел може повернути значення, відмінне від центру.
Зауважимо, що обчислене значення, ймовірно, краще характеризується як "оптимістичне", а не "оптимальне". Наприклад, розглянемо три інтервали [10,12], [11, 13] та [11,99,13]. Алгоритм, описаний нижче, обчислює [11,99, 12] або 11,995 ± 0,005, що є дуже точним значенням. Якщо ми підозрюємо, що одна з оцінок може бути невірною, то принаймні дві оцінки повинні бути правильними. За цієї умови найкраща оцінка є [11,13], оскільки це найбільший інтервал, який завжди перетинає щонайменше дві оцінки. Описаний нижче алгоритм легко параметризується з максимальною кількістю неправильних оцінок.
Метод
Алгоритм Марзулло починається з підготовки таблиці джерел, їх сортування та подальшого пошуку (ефективного) перетину інтервалів. Для кожного джерела існує діапазон [c − r, c + r], визначений c ± r. Для кожного діапазону таблиця матиме два кортежі форми <зміщення, тип>. Один кортеж представлятиме початок діапазону, позначений типом -1 як <c − r, −1>, а другий буде представляти кінець з типом +1 як <c + r, + 1>.
В описі алгоритму використовуються такі змінні: best (знайдена найбільша кількість інтервалів, що перекриваються), cnt (поточна кількість інтервалів, що перекриваються), beststart і bestend (початок і кінець найкращого інтервалу, знайденого поки що), i (index) , і стіл кортежів.
- Побудуйте таблицю кортежів
- Сортуйте таблицю за зміщенням. У разі однакового зміщення для двох кортежів протилежних типів (один інтервал закінчується початком іншого) застосувати спеціальний метод вирішення пріоритету. Такий випадок можна вважати перекриттям без тривалості, яке можна знайти за алгоритмом, поставивши тип -1 перед типом +1. Якщо такі патологічні перекриття вважаються заперечними, їх можна уникнути, поставивши тип +1 перед -1 у цьому випадку.)
- [ініціалізувати] best = 0 cnt = 0
- [цикл] проходьте кожен кортеж таблиці у порядку зростання.
- [поточна кількість перекриваючих інтервалів] cnt = cnt-type [i]
- якщо cnt > best тоді best = cnt beststart = offset[i] bestend = offset[i + 1]
- коментар: наступний кортеж у [i + 1] буде або закінченням інтервалу (type = + 1); у цьому випадку він закінчує цей найкращий інтервал, або буде початком інтервалу (type = −1) і на наступному кроці замінить найкращий.неоднозначність: не визначено - що робити, якщо best = cnt. Це умова для найбільшого перекриття. Можна ухвалити рішення або взяти менше з bestend-beststart, або offset[i + 1] − offset[i], або просто взяти довільний один з двох однаково хороших записів.
- 7.[кінцевий цикл] повернути [beststart, bestend] як оптимальний інтервал. Кількість помилкових джерел (тих, які не перекривають оптимальний інтервал, що повертається) - це кількість джерел мінус значення кращих.
Список літератури
- Marzullo, K. A. (Feb 1984). . Ph.D. dissertation. Department of Electrical Engineering. Stanford University. ASIN B000710CSC. OCLC 38621764. DDC 3781.1984 M. Архів оригіналу за 19 жовтня 2019. Процитовано 19 жовтня 2019.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Algoritm Marzullo vinajdenij en v ramkah svoyeyi kandidatskoyi disertaciyi v 1984 roci ce sho vikoristovuyetsya dlya viboru bilsh tochnih dzherel dlya ocinki tochnogo chasu z ryadu dzherel chasu Pereroblena versiya cogo algoritmu nazvana ye chastinoyu merezhevogo protokolu chasu NTP MetaAlgoritm Marzullo efektivnij v terminah chasu dlya otrimannya optimalnogo znachennya z naboru ocinok z yih dovirchimi intervalami de optimalne znachennya mozhe lezhati poza dovirchim intervalom dlya deyakih dzherel Najkrashoyu ocinkoyu slid vvazhati najmenshij interval yakij vidpovidaye najbilshij kilkosti dzherel Pripustimo sho mi mayemo taki ocinki 10 2 12 1 i 11 1 v intervalah 8 12 11 13 i 10 12 Yih peretinom bude interval 11 12 abo tochka 11 5 0 5 sho vidpovidaye vsim trom dzherelam Yaksho natomist diapazoni stanovlyat 8 12 11 13 ta 14 15 to interval ne vidpovidaye vsim cim znachennyam ale 11 12 vidpovidaye najbilshij kilkosti dzherel a same dvom Nareshti yaksho ye diapazoni 8 9 8 12 ta 10 12 to obidva intervali 8 9 i 10 12 uzgodzhuyutsya z najbilshoyu kilkistyu dzherel Cya procedura viznachaye interval Yaksho bazhanij rezultat ye najkrashim znachennyam z cogo intervalu todi nayivnim pidhodom bulo b prijnyati centr intervalu yak znachennya yake bulo viznacheno v originalnomu algoritmi Marzullo Bilsh skladnij pidhid viznav bi sho ce mozhe vikinuti korisnu informaciyu z dovirchih intervaliv dzherel i sho jmovirnisna model dzherel mozhe povernuti znachennya vidminne vid centru Zauvazhimo sho obchislene znachennya jmovirno krashe harakterizuyetsya yak optimistichne a ne optimalne Napriklad rozglyanemo tri intervali 10 12 11 13 ta 11 99 13 Algoritm opisanij nizhche obchislyuye 11 99 12 abo 11 995 0 005 sho ye duzhe tochnim znachennyam Yaksho mi pidozryuyemo sho odna z ocinok mozhe buti nevirnoyu to prinajmni dvi ocinki povinni buti pravilnimi Za ciyeyi umovi najkrasha ocinka ye 11 13 oskilki ce najbilshij interval yakij zavzhdi peretinaye shonajmenshe dvi ocinki Opisanij nizhche algoritm legko parametrizuyetsya z maksimalnoyu kilkistyu nepravilnih ocinok MetodAlgoritm Marzullo pochinayetsya z pidgotovki tablici dzherel yih sortuvannya ta podalshogo poshuku efektivnogo peretinu intervaliv Dlya kozhnogo dzherela isnuye diapazon c r c r viznachenij c r Dlya kozhnogo diapazonu tablicya matime dva kortezhi formi lt zmishennya tip gt Odin kortezh predstavlyatime pochatok diapazonu poznachenij tipom 1 yak lt c r 1 gt a drugij bude predstavlyati kinec z tipom 1 yak lt c r 1 gt V opisi algoritmu vikoristovuyutsya taki zminni best znajdena najbilsha kilkist intervaliv sho perekrivayutsya cnt potochna kilkist intervaliv sho perekrivayutsya beststart i bestend pochatok i kinec najkrashogo intervalu znajdenogo poki sho i index i stil kortezhiv Pobudujte tablicyu kortezhiv Sortujte tablicyu za zmishennyam U razi odnakovogo zmishennya dlya dvoh kortezhiv protilezhnih tipiv odin interval zakinchuyetsya pochatkom inshogo zastosuvati specialnij metod virishennya prioritetu Takij vipadok mozhna vvazhati perekrittyam bez trivalosti yake mozhna znajti za algoritmom postavivshi tip 1 pered tipom 1 Yaksho taki patologichni perekrittya vvazhayutsya zaperechnimi yih mozhna uniknuti postavivshi tip 1 pered 1 u comu vipadku inicializuvati best 0 cnt 0 cikl prohodte kozhen kortezh tablici u poryadku zrostannya potochna kilkist perekrivayuchih intervaliv cnt cnt type i yaksho cnt gt best todi best cnt beststart offset i bestend offset i 1 komentar nastupnij kortezh u i 1 bude abo zakinchennyam intervalu type 1 u comu vipadku vin zakinchuye cej najkrashij interval abo bude pochatkom intervalu type 1 i na nastupnomu kroci zaminit najkrashij neodnoznachnist ne viznacheno sho robiti yaksho best cnt Ce umova dlya najbilshogo perekrittya Mozhna uhvaliti rishennya abo vzyati menshe z bestend beststart abo offset i 1 offset i abo prosto vzyati dovilnij odin z dvoh odnakovo horoshih zapisiv 7 kincevij cikl povernuti beststart bestend yak optimalnij interval Kilkist pomilkovih dzherel tih yaki ne perekrivayut optimalnij interval sho povertayetsya ce kilkist dzherel minus znachennya krashih dd Spisok literaturiMarzullo K A Feb 1984 Ph D dissertation Department of Electrical Engineering Stanford University ASIN B000710CSC OCLC 38621764 DDC 3781 1984 M Arhiv originalu za 19 zhovtnya 2019 Procitovano 19 zhovtnya 2019