Онлайн алгоритм (англ. online algorithm) — алгоритми, що може обробляти дані в міру їх надходження, не маючи загального доступу до всіх даних з самого початку.
На відміну від нього, офлайн алгоритм (англ. offline algorithm) може працювати з усіма даними від самого початку. Розділ в дослідженні операцій, який займається розробкою онлайн алгоритмів називається [en].
Для прикладу розглянемо два алгоритми сортування: сортування вибором та сортування вставкою. Сортування вибором послідовно вибирає мінімальний елемент з невідсортованого залишку та розміщує його спереду, що потребує доступу до всіх входових даних; тобто, це буде офлайн алгоритм. На відміну від нього, сортування вставкою за одну ітерацію бере один входовий елемент і отримує частковий розв'язок без урахування майбутніх елементів. Таким чином, сортування вставкою — це онлайн алгоритм.
Зверніть увагу, що кінцевий результат сортування вставкою є оптимальним, тобто, це правильно відсортований список. Для багатьох задач онлайн алгоритми не можуть мати таку ж швидкодію, як офлайн алгоритми. Якщо співвідношення швидкодії онлайн алгоритму до оптимального офлайн-алгоритму є обмеженим, то онлайн алгоритм називається конкурентним.
Очевидно, що не кожен офлайн алгоритм має ефективний онлайн відповідник.
Задача кешування (Paging Problem)
Є два види пам'яті — дискова, більша за об'ємом, але повільна, і кеш, швидка, але дуже мала. Вся пам'ять розбита на блоки. Нехай в кеш-пам'яті k блоків, а на диску, відповідно, набагато більше. До нас поступають запити на ті чи інші блоки, і ми повинні відразу ж їх обробити. Є два варіанти: або цей блок вже є в кеші, або його там немає. Якщо він в кеші є, то в цьому випадку ми майже не витрачаємо час. I тоді час роботи алгоритму можна вимірювати кількістю звернень до вінчестера. Алгоритми відрізняються один від одного реакцією на запити відсутніх в кеші блоків. Зрозуміло, що ми повинні блок, на який йде запит довантажити в кеш, не зрозуміло тільки, який з уже присутніх там блоків ми повинні для цього вивантажити. Звичайно, хотілося б вивантажити «непотрібний» блок, але оскільки ми обробляємо запити в реальному часі, ми не знаємо, який блок нам буде потрібний в подальшому. Постає й інше питання: як порівняти, який алгоритм найкращий.
Нехай — алгоритм, а — послідовність запитів. Час обробки послідовності запитів алгоритмів — це кількість звернень до диску. Нехай — якийсь оптимальний алгоритм. Тоді алгоритм називається -оптимальним (c-competitive), якщо для будь-якого : . Де, — константа відносно , але вона може залежати від k інших параметрів. Але це виконується — для детермінованих алгоритмів, для ймовірнісних, розглядається не час, а її математичне очікування. Будемо розглядати випадок, коли — ймовірнісний online алгоритм, а — детермінований offline алгоритм («oblivious adversary»), тобто він заздалегідь всю знає послідовність запитів .
Алгоритм Marker.
Елементи кешу позначаються 0 або 1. Час роботи поділяється на періоди. На початку кожного періоду всі елементи кешу позначені 0. Приходить запит. Якщо це запит на блок, який вже є в кеші, то він позначається 1. Якщо запитують елемент, якого немає в кеші, то ми випадковим чином вибираємо з непомічених (тобто помічених 0) блок, куди ми будемо довантажувати необхідний. Довантаживши, ми помічаємо його 1. Рано чи пізно у нас не залишиться блоків, помічених 0. У цьому стані ми можемо працювати, поки у нас запитують блоки, що знаходяться в кеші. Як тільки надійде запит на елемент, що не міститься в кеші, ми обнулив всі позначки і почнемо новий період.
Алгоритм Work Function Algorithm.
Припустимо, що в даний момент наша система знаходиться в стані і до нас приходить запит . Тоді ми вибираємо новий стан , яке містить і мінімізує наступну функцію від , де — це послідовність запитів, які ми вже обробили, а — це вартість (оптимального) переходу зі стану в .
Задача про офіціантів (k-server problem)
Узагальнимо задачу кешування. Нехай у нас є деякий метричний простір з метрикою , точки якого ми будемо розглядати як столики, і офіціантів, тобто деяка підмножина точок цього простору. Час від часу зі столиків надходять замовлення. Формально, замовлення — це координати столика. Замовлення потрібно обслуговувати, тобто треба вибрати одного з офіціантів і перемістити його в дану точку простору. Довжиною такого переміщення буде відстань між вихідною та кінцевою його точками. Кожен офіціант в кожен момент часу знаходиться біля якогось столика, і стан (конфігурація) системи описується множиною координат столиків, біля яких в даний момент знаходяться офіціанти. Тобто стан — це мультимножина (множина з кратними елементами), яка складається з точок простору. Назавжди зафіксуємо початковий стан нашої системи. Нехай = — послідовність замовлень. Тоді робоча функція , що зіставляє стану , найменшу відстань обслуговування з початкового стану , в стан . (Відстань обслуговування — це сума відстаней, пройдених всіма офіціантами, причому найменший шлях визначається за допомогою оптимального offline алгоритму, якому відоме ).
Примітки
- Karp, Richard M. (1992). (PDF). IFIP Congress (1). 12: 416—429. Архів оригіналу (PDF) за 5 березня 2016. Процитовано 17 серпня 2015.
- Гирш Э. Алгоритмы, работающие в реальном времени
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Onlajn algoritm angl online algorithm algoritmi sho mozhe obroblyati dani v miru yih nadhodzhennya ne mayuchi zagalnogo dostupu do vsih danih z samogo pochatku Na vidminu vid nogo oflajn algoritm angl offline algorithm mozhe pracyuvati z usima danimi vid samogo pochatku Rozdil v doslidzhenni operacij yakij zajmayetsya rozrobkoyu onlajn algoritmiv nazivayetsya en Dlya prikladu rozglyanemo dva algoritmi sortuvannya sortuvannya viborom ta sortuvannya vstavkoyu Sortuvannya viborom poslidovno vibiraye minimalnij element z nevidsortovanogo zalishku ta rozmishuye jogo speredu sho potrebuye dostupu do vsih vhodovih danih tobto ce bude oflajn algoritm Na vidminu vid nogo sortuvannya vstavkoyu za odnu iteraciyu bere odin vhodovij element i otrimuye chastkovij rozv yazok bez urahuvannya majbutnih elementiv Takim chinom sortuvannya vstavkoyu ce onlajn algoritm Zvernit uvagu sho kincevij rezultat sortuvannya vstavkoyu ye optimalnim tobto ce pravilno vidsortovanij spisok Dlya bagatoh zadach onlajn algoritmi ne mozhut mati taku zh shvidkodiyu yak oflajn algoritmi Yaksho spivvidnoshennya shvidkodiyi onlajn algoritmu do optimalnogo oflajn algoritmu ye obmezhenim to onlajn algoritm nazivayetsya konkurentnim Ochevidno sho ne kozhen oflajn algoritm maye efektivnij onlajn vidpovidnik Zadacha keshuvannya Paging Problem Ye dva vidi pam yati diskova bilsha za ob yemom ale povilna i kesh shvidka ale duzhe mala Vsya pam yat rozbita na bloki Nehaj v kesh pam yati k blokiv a na disku vidpovidno nabagato bilshe Do nas postupayut zapiti na ti chi inshi bloki i mi povinni vidrazu zh yih obrobiti Ye dva varianti abo cej blok vzhe ye v keshi abo jogo tam nemaye Yaksho vin v keshi ye to v comu vipadku mi majzhe ne vitrachayemo chas I todi chas roboti algoritmu mozhna vimiryuvati kilkistyu zvernen do vinchestera Algoritmi vidriznyayutsya odin vid odnogo reakciyeyu na zapiti vidsutnih v keshi blokiv Zrozumilo sho mi povinni blok na yakij jde zapit dovantazhiti v kesh ne zrozumilo tilki yakij z uzhe prisutnih tam blokiv mi povinni dlya cogo vivantazhiti Zvichajno hotilosya b vivantazhiti nepotribnij blok ale oskilki mi obroblyayemo zapiti v realnomu chasi mi ne znayemo yakij blok nam bude potribnij v podalshomu Postaye j inshe pitannya yak porivnyati yakij algoritm najkrashij Nehaj A displaystyle mbox A algoritm a r displaystyle mbox r poslidovnist zapitiv Chas obrobki poslidovnosti zapitiv algoritmiv costA r displaystyle mbox cost mathrm A r ce kilkist zvernen do disku Nehaj opt displaystyle mbox opt yakijs optimalnij algoritm Todi algoritm A displaystyle mbox A nazivayetsya c displaystyle mbox c optimalnim c competitive yaksho dlya bud yakogo r displaystyle mbox r costA r displaystyle mbox cost mathrm A r displaystyle leq c costotp r c1 displaystyle c cdot mbox cost mathrm otp r c 1 De c displaystyle mbox c konstanta vidnosno r displaystyle mbox r ale vona mozhe zalezhati vid k inshih parametriv Ale ce vikonuyetsya dlya determinovanih algoritmiv dlya jmovirnisnih rozglyadayetsya ne chas a yiyi matematichne ochikuvannya Budemo rozglyadati vipadok koli A displaystyle mbox A jmovirnisnij online algoritm a opt displaystyle mbox opt determinovanij offline algoritm oblivious adversary tobto vin zazdalegid vsyu znaye poslidovnist zapitiv r displaystyle mbox r Algoritm Marker Elementi keshu poznachayutsya 0 abo 1 Chas roboti podilyayetsya na periodi Na pochatku kozhnogo periodu vsi elementi keshu poznacheni 0 Prihodit zapit Yaksho ce zapit na blok yakij vzhe ye v keshi to vin poznachayetsya 1 Yaksho zapituyut element yakogo nemaye v keshi to mi vipadkovim chinom vibirayemo z nepomichenih tobto pomichenih 0 blok kudi mi budemo dovantazhuvati neobhidnij Dovantazhivshi mi pomichayemo jogo 1 Rano chi pizno u nas ne zalishitsya blokiv pomichenih 0 U comu stani mi mozhemo pracyuvati poki u nas zapituyut bloki sho znahodyatsya v keshi Yak tilki nadijde zapit na element sho ne mistitsya v keshi mi obnuliv vsi poznachki i pochnemo novij period Algoritm Work Function Algorithm Pripustimo sho v danij moment nasha sistema znahoditsya v stani X displaystyle mbox X i do nas prihodit zapit r displaystyle mbox r Todi mi vibirayemo novij stan X displaystyle mbox X yake mistit r displaystyle mbox r i minimizuye nastupnu funkciyu vid X Wrr X D X X displaystyle X mbox W mathrm rho r X mbox D X X de r displaystyle rho ce poslidovnist zapitiv yaki mi vzhe obrobili a D X X displaystyle mbox D X X ce vartist optimalnogo perehodu zi stanu X displaystyle mbox X v X displaystyle mbox X Zadacha pro k displaystyle k oficiantiv k server problem Dokladnishe en Uzagalnimo zadachu keshuvannya Nehaj u nas ye deyakij metrichnij prostir z metrikoyu d displaystyle d tochki yakogo mi budemo rozglyadati yak stoliki i k displaystyle k oficiantiv tobto deyaka pidmnozhina k displaystyle k tochok cogo prostoru Chas vid chasu zi stolikiv nadhodyat zamovlennya Formalno zamovlennya ce koordinati stolika Zamovlennya potribno obslugovuvati tobto treba vibrati odnogo z oficiantiv i peremistiti jogo v danu tochku prostoru Dovzhinoyu takogo peremishennya bude vidstan mizh vihidnoyu ta kincevoyu jogo tochkami Kozhen oficiant v kozhen moment chasu znahoditsya bilya yakogos stolika i stan konfiguraciya sistemi opisuyetsya mnozhinoyu koordinat stolikiv bilya yakih v danij moment znahodyatsya oficianti Tobto stan X displaystyle X ce multimnozhina mnozhina z kratnimi elementami yaka skladayetsya z k displaystyle k tochok prostoru Nazavzhdi zafiksuyemo pochatkovij stan A0 displaystyle A 0 nashoyi sistemi Nehaj r displaystyle r r1 r2 rn displaystyle r 1 r 2 r n poslidovnist zamovlen Todi robocha funkciya Wr displaystyle W r sho zistavlyaye stanu X displaystyle X najmenshu vidstan obslugovuvannya r displaystyle r z pochatkovogo stanu A0 displaystyle A 0 v stan X displaystyle X Vidstan obslugovuvannya ce suma vidstanej projdenih vsima oficiantami prichomu najmenshij shlyah viznachayetsya za dopomogoyu optimalnogo offline algoritmu yakomu vidome r displaystyle r PrimitkiKarp Richard M 1992 PDF IFIP Congress 1 12 416 429 Arhiv originalu PDF za 5 bereznya 2016 Procitovano 17 serpnya 2015 Girsh E Algoritmy rabotayushie v realnom vremeni