JANKA, Marek: Matematické modely a simulace synchronizace robotů

  • Upload
    marek

  • View
    15

  • Download
    0

Embed Size (px)

DESCRIPTION

Work, which was written as part of Czech competition SOČ 2015 in category of Mathematic.

Citation preview

  • STREDOSKOLSKA ODBORNA CINNOST

    Obor SOC: 1. Matematika a statistika

    Matematicke modely a simulace synchronizacerobotu

    Autor:

    Skola:

    Kraj:

    Konzultant:

    Marek Janka

    Slovanske gymnazium Olomouctrda Jirho z Podebrad 13, Olomouc

    Olomoucky kraj

    Mgr. Ondrej Vencalek, Ph.D.

    Olomouc 2015

  • Prohlasen

    Prohlasuji, ze jsem svou praci SOC vypracoval samostatne a pouzil jsem pouze podklady uvedene v se-znamu vlozenem v praci SOC.

    Prohlasuji, ze tistena verze a elektronicka verze soutezn prace SOC jsou shodne.

    Nemam zavazny duvod proti zprstupnovan teto prace v souladu se zakonem c. 121/2000 Sb., o pravuautorskem, o pravech souvisejcch s pravem autorskym a o zmene nekterych zakonu (autorsky zakon)v platnem znen.

    V .......................... dne ..................... podpis: .................................

  • Podekovan

    Chtel bych podekovat Mgr. Ondreji Vencalkovi, Ph.D. za to, ze byl konzultantem me prace a pomohlmi najt vhodne tema, a dale doc. RNDr. Karlu Hronovi, Ph.D. za cenne pripomnky a podporu pripraci.

  • Anotace

    Prace se zabyva simulacemi prubehu ruznych zpusobu synchronizac casu mezi roboty. Tihle robotijsou zajmav tm, ze spolu nekomunikuj na dalku, ale komunikuje jen dvojice, ktera se setka. Takejsou vsichni rovnocenn, zadny z nich nema rdc pozici. Synchronizovat se mohou ruznymi zpusoby.Resm, jak rychle jednotlive zpusoby jsou, dale jak moc jsou roboti synchronizovani v ruznem stadiuprocesu a jak a na jakych faktorech je doba potrebna k synchronizaci zavisla. Rozlisuji roboty s casemcyklickym a linearnm a dale s diskretnm a spojitym.

    Dale kratce uvadm zpusob, kterym by bylo teoreticky mozne zskat vysledky vypoctem mstosimulac. Jednalo by se ovsem o zpusob casove velmi narocny.

    Klcova slova: Roboti, synchronizace, poctacova simulace, linearn cas, cyklicky cas, Markovuvretezec

    Abstract

    Simulations of different ways to synchronize time between robots. These robots are unique in theway they communicate - they do not communicate at distances, but only when they meet. Above that,all of them are the same, none of them has a leading position.

    These robots can be synchronized in several ways. I deal with their speed, number of robotssynchronized in different stages and also with factors on which depend time needed. We distinguishrobots with linear and cyclic time and also with discrete and continuous time.

    There is also mentioned a way how to reach needed time by computing instead of simulation.However, this way is very time demanding.

    Key words: Robots, synchronization, computer simulation, linear time, cyclic time, Markov chain

  • Obsah

    Uvod 6

    1 Princip setkavan a synchronizace 7

    2 Poctacova simulace matematickeho modelu 82.1 Synchronizacn algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    3 Roboti s linearnm casem 93.1 Dukaz synchronizace pro linearn cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Linearn diskretn cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3 Linearn spojity cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Predpokladany cas po synchronizaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4 Roboti s cyklickym casem 164.1 Cyklicky diskretn cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2 Cyklicky spojity cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.3 Urcen mry synchronizovanosti robotu . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.4 System, stav systemu, prechody mezi stavy . . . . . . . . . . . . . . . . . . . . . . . . 22

    4.4.1 Vizualizace jednoducheho systemu . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5 Vypocet potrebneho casu 25

    6 Zavislost trvan synchronizace 266.1 Zavislost na poctu robotu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266.2 Zavislost na velikosti casoveho intervalu . . . . . . . . . . . . . . . . . . . . . . . . . . 266.3 Zavislost na zvolene presnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    Zaver 28

    Literatura a zdroje 29

    5

  • Uvod

    Puvodn inspirac pro tema prace byl prspevek blogu Tomase Fursta [1]. Uvad jako zajmavost,ze velke mnozstv robotu si dokaze synchronizovat cas, i kdyz spolu prlis nekomunikuj a nemaj mezisebou zadneho robota, ktery by byl rdc a cas by urcoval. Spolu s Ondrejem Vencalkem, garantem meprace, jsme se zacali zabyvat problematikou teto synchronizace. Clem prace je tento problem detailnerozebrat, zjistit na jakych faktorech synchronizace zavis a z hlediska potrebneho casu optimalizovatsynchronizaci pro ruzne situace.

    Vetsina prace je zalozena na pozorovanch a statistikach matematickeho modelu simulovanehopoctacem. Z vysledku simulac je odvozovana i vetsina zavislost. Teoreticky by slo k vysledkumzskanym simulacemi dojt i vypocty, ktere by ovsem byly velmi slozite a casove narocne i na vypocetnkapacitu poctacu. Resit problem simulacne je vyrazne jednoduss cesta.

    V prvnch dvou kratkych kapitolach se zabyvam obecnym fungovanm synchronizace u nasichrobotu a zpusobem, jak byly procesy simulovany.

    Ve tret kapitole je resen jednoduss prpad robotu s linearnm casem. Je zde predlozen dukaz, procsynchronizace funguje a detailne resen diskretn a spojity cas. V zaveru tret kapitoly jsou objasnenyzavislosti, umoznujc nam na zaklade pocatecn situace predpokladat vysledek synchronizace.

    Ctvrta kapitola je zamerena na roboty s cyklickym casem. Otazku spojiteho a diskretnho casuuz neres kvuli podobnosti s casem linearnm tak detailne, ovsem dopodrobna se ve snaze najt dukazsynchronizace zabyva problemem urcit vhodnym zpusobem mru variability casu robotu. V jejmzaveru pak charakterizuji system robotu pomoc stavu, ve kterych se mohou nachazet.

    Na to navazuje pata kapitola, ve ktere je naznacen zpusob, jakym by se dalo k vysledkum simulacdojt pomoc vypoctu.

    Posledn, sesta kapitola se samostatne venuje faktorum, na kterych zavis delka synchronizace, byt

    nektere jsou naznaceny a zmneny jiz drve v textu. Hledam v n zpusob, jakym je pocet potrebnychsetkan na danych velicinach zavisly.

    6

  • 1 Princip setkavan a synchronizace

    V cele praci se zabyvame virtualnmi roboty, tedy nejakym matematickym modelem ci simulacrobotu skutecnych. Resme nasledujc problem: v dane oblasti se pohybuje urcity pocet robotu. Kazdyje zcela nezavisly a neexistuje zadny rdc robot ci zakladna, ktery by daval robotum ostatnm povelya signaly.

    Presto chceme, aby spolu roboti nejak komunikovali. Kazdy z nich se v oblasti pohybuje nahodnea komunikovat muze vzdy pouze dvojice robotu, ktera se setka. Informac, kterou si navzajem predaj,je cas kazdeho z nich. Ten chceme, aby si sesynchronizovali. Kazdy robot ma totiz hodiny, kterenejsou na zacatku serzene - hodiny kazdeho z robotu mohou ukazovat jiny cas.1 Synchronizovanycas je vetsinou v praxi pri vyuzit robotu zakladnm predpokladem pro jakoukoliv dals spolupracirobotu, at uz se jedna o kosmicke druzice, dnes velmi popularn drony nebo skupiny kilobotu - velkeskupiny malych levnych robotu, schopnych spolu velmi dobre kooperovat, i kdyz zatm spse v ruznychtechnickych laboratorch. Synchronizace je dulezita i ve spouste dalsch oboru, nemus se tykat jenrobotu.

    Synchronizuj se nasledujcm zpusobem: dva nahodn roboti se setkaj a prenastav si svuj cas najejich spolecny aritmeticky prumer. Tm, zda prumer zaokrouhlovat, prpadne kdy a kam, se zabyvamv jednotlivych kapitolach. Pote se opet odlouc, setka se jina dvojice a cely postup se opakuje. Ruznevarianty casu maj nektere sve speciality, ktere budou uvedeny dale, ovsem vzdy vychaz z uvedenehozpusobu.

    Synchronizace bude zaviset na dvou promennych: poctu robotu n a velikosti intervalu, ve kteremse budou na zacatku nachazet jejich casy. Velikost intervalu budeme charakterizovat jednm cslem m,interval bude 0;m). Pocatecn casy pred zacatkem simulace nahodne rozdelme tak, aby byly rov-nomerne rozlozeny v celem tomto intervalu. Rovnomernym rozdelenm dosahneme maximaln moznemry variability pred pocatkem synchronizace.

    1Operujeme-li s diskretnm casem (sekce 3.2), je pravdepodobne, ze bude mt nekolik malo robotu na zacatku casstejny. V prpade cyklickeho diskretnho casu, kdy robotu je vce nez moznych casu, je to dokonce nutne.

    7

  • 2 Poctacova simulace matematickeho modelu

    Pouzil jsem mezi statistiky velmi oblbeny programovac jazyk R [2].Roboti byli zadani pouze svym indexem a casem v usporadane n-tici hodnot casu. Ve vetsine

    prpadu jsem pracoval se 100 roboty, tedy se 100 casy oindexovanymi od 1 do 100.

    Index 1 2 3 4 5 6 n (vetsinou 100)Cas 1 1 2 3 4 7 m

    Setkan nahodnych robotu bylo zajisteno vyberem 2 nahodnych indexu. Abych mohl sledovat, koliksetkan je pro synchronizaci v ruznych prpadech potreba, bezel algoritmus jen dokud se vsechny casynavzajem nerovnaly (u diskretnho casu) nebo jejich rozptylen nedosahlo zvolene presnosti (u spoji-teho casu).

    Protoze jsem se nezabyval cetnost setkavan robotu, ale pouze potrebnym poctem setkan, slovelmi jednoduse prezentovat i ubhajc cas behem setkavan: po kazdem setkan se cas vsech ro-botu zvysil o 1. Jinymi slovy probhalo prave jedno setkan za jednu casovou jednotku. Kdybychchtel zohlednit cetnost setkavan, musel bych si urcit nejakou stredn hodnotu, jak casto k setkandojde, a msto zvetsovan casu o 1 jednotku jej zvetsovat o nahodnou hodnotu, vybranou naprkladz normalnho rozdelen hodnot o stredn hodnote odpovdajc zvolene stredn hodnote prodlevy mezisetkanmi.

    2.1 Synchronizacn algoritmus

    Popsu zde ve strucnosti proces simulace v jednotlivych krocch:

    Pocatecn rozdelen casu:Vygeneruj n nahodnych hodnot rovnomerne rozdelenych v intervalu 0;m) a uloz je do promenne

    x. Ta je jednorozmerne pole o delce n.U diskretnho casu hodnoty x zaokrouhli dolu.

    Synchronizace: (pro linearn spojity cas)Dokud je odchylka xmax xmin > Q (koeficient presnosti, viz 3.3 - Linearn spojity cas), opakuj:Vyber dve ruzna nahodna cela csla z intervalu 1;n, uloz je jako promenne i a j. Vezmi i-tou

    a j-tou hodnotu z pole x a zmen je na jejich spolecny prumer. Kazdou hodnotu z pole x zvetsi o 1.

    Trosku sloziteji vypada prubeh u cyklickeho casu:

    Synchronizace: (pro cyklicky diskretn cas)Dokud se vsechny hodnoty x navzajem nerovnaj, opakuj:Vyber dve ruzna nahodna cela csla z intervalu 1;n, uloz je jako promenne i a j. Vezmi i-tou

    a j-tou hodnotu z pole x. Nastav promennou b na jejich prumer. Je-li jejich rozdl vets nez m2 , zvetsihodnotu b o m2 .

    2 Zaokrouhli hodnotu b nahoru. Zmen i-tou a j-tou hodnotu z pole x na hodnotu b.Kazdou hodnotu z pole x zvetsi o 1. Kazdou hodnotu z pole x nastav na jej zbytek po delen cslem m(neboli zmen kazdou hodnotu x na x modulo m).

    Synchronizacnch algoritmu bylo vce, uvadm jen tyhle pro osvetlen jejich principu.V prubehu synchronizace je samozrejme zaznamenavan pocet opakovan, tj. potrebny pocet setkan

    pro jejich vyhodnocen.

    2Viz 4 - Roboti s cyklickym casem.

    8

  • 3 Roboti s linearnm casem

    Linearn cas, tedy takovy, ktery ubha stale kupredu od nejakeho pocatku, je jednoduss varianta.Pocatkem muze byt naprklad zapnut robota.

    Dulezitou hodnotou, kterou u naseho souboru robotu sledujeme, je variabilita casu (nejen u li-nearnho, i u cyklickeho casu). U linearnho casu je to proste: v kazde chvli muzeme casy vsechrobotu vynest na cselnou osu. Moznost, ktera se zde sama nabz, je spoctat rozptyl (varianci) podleznameho vzorce jako aritmeticky prumer ctvercu vzdalenost jednotlivych hodnot od aritmetickehoprumeru vsech hodnot.3

    var =1

    n

    ni=1

    (xi x)2

    kde n = pocet robotu, x = aritmeticky prumer casu robotu, xi = cas i-teho robota

    3.1 Dukaz synchronizace pro linearn cas

    Zde je dukaz, ze roboti se setkavanm a prumerovanm svych casu opravdu synchronizuj. Kazdymsetkanm se rozptyl snz, pokud se setkaj dva roboti s ruznym casem, nebo alespon zustane stejny,pokud maj cas stejny.

    Mejme n robotu, jejichz casy pro ilustraci zaneseme na cselnou osu. Oznacme jejich aritmetickyprumer X. Ted vezmeme dva roboty, ktere budeme sledovat, jejich casy oznacme X1 a X2 a jejichprumer P .

    X X1 P X2

    Rozptyl pred setkanm robotu X1 a X2 var1 bude:

    var1 =

    (X1 X

    )2+(X2 X

    )2+ . . .+

    (Xn X

    )2n

    Po setkan a zprumerovan robotu s casy X1 a X2 na cas P :

    var2 =

    (P X)2 + (P X)2 + (X3 X)2 + . . .+ (Xn X)2

    n

    Protoze P = X1+X22 , upravme var2 na:

    var2 =2(X1+X2

    2 X)2

    +(X3 X

    )2+ . . .+

    (Xn X

    )2n

    Hodnota X zustane nezmenena, protoze

    X =X1 +X2 + . . .+Xn

    n=

    2(X1+X2

    2

    )+X3 + . . .+Xn

    n

    Ukazme, ze var1 var2, tedy ze rozptyl se snz:

    var1 var2 =(X1 X

    )2+(X2 X

    )2n

    2(X1+X2

    2 X)2

    n=

    =1

    n

    [(X21 2X1X + X2 +X22 2X2X + X2

    ) (X212X1X2 + X

    22

    2 2X1X 2X2X + 2X2

    )]=

    3U maleho poctu hodnot se nekdy zavad tzv. Besselova korekce, kdy se msto uvedeneho vztahu pouzva vztah

    var =1

    n 1ni=1

    (xi x)2, ktery je lepsm odhadem stredn hodnoty ctvercu vzdalenost hodnot od stredn hodnoty casu.V nasem prpade muzeme ovsem pouzt prvne uvedeny vztah.

    9

  • =1

    n

    (X21 +X

    22

    2X1X2

    )=

    (X1 X2)22n

    0

    Vysledny vyraz je vzdy nezaporny, nebot druha mocnina libovolneho vyrazu je vzdy nezapornaa n, vyjadrujc pocet robotu, je kladne.

    Tedy opravdu je var1 var2.To, ze rozptyl klesa prave k nule, ukazeme nasledovne: rozptyl je nulovy prave kdyz se vsechny

    hodnoty X navzajem rovnaj. Dokud se alespon jedna z nich svou hodnotou lis, muzeme vybrat X1a X2 od sebe se lisc. Z uvedeneho poslednho vztahu

    var1 var2 = (X1 X2)2

    2n

    plyne, ze v tomto prpade se rozptyl snz. Takhle muzeme vybrat hodnoty a snizovat rozptyl takdlouho, dokud bude ruzny do nuly.

    Dukaz plat jen, pokud nezaokrouhlujeme, tj. pro spojity, nikoliv diskretn cas. Pri zaokrouhlovanse totiz muze stat (a v kazde simulaci parkrat take stane), ze se rozptyl prece jen zvys, protoze lehcezmenme hodnotu P a s n take X.

    3.2 Linearn diskretn cas

    Diskretn cas uvazujeme s omezenou presnost celych casovych jednotek. Naprklad muze bezet posekundach: 1, 2, 3, . . . a tak dale. Neexistuj zde casy jine nez celocselne. I kdyz se to nezda, s diskretnmcasem bezne pracujeme kazdy den: naprklad digitaln budk nam ukazuje vzdy cele minuty, ktere nampro bezny zivot bohate postacuj.

    Kdyz se setkaj dva roboti s celocselnym casem, tak po zprumerovan jejich casu muzeme dostatcas celocselny (napr. 2 a 4 3), nebo take

    polocselny (napr. 2 a 3 2,5). Roboti ale operuj

    pouze s casy celocselnymi. Co ted? Nabzej se tyto moznosti:

    1. Vyjde-li prumerovanm polocselny cas, tito dva roboti si nebudou cas prumerovat a zas serozjedou kazdy s casem puvodnm.

    2. Polocselny cas je potreba nejak zaokrouhlit. Muzeme zaokrouhlovat vzdy dolu ci vzdy nahoru.

    3. Take muzeme nahodne pri kazdem takovem setkan zvolit, kam cas zaokrouhlme.

    Ad 1: Pri blizsm prozkouman teto moznosti se ukaze, ze se pouzt neda. Mohlo by se totiz stat, zesoubor robotu nikdy nedojde do stavu, kdy maj vsichni stejny cas. Muze totiz vzniknout nekolik sku-pin robotu se stejnymi cas, ale skupiny mezi sebou nemohou interagovat, protoze by davaly polocselnycas. Uvedu prklad se ctyrmi roboty:

    Cslo robota 1 2 3 4

    Cas 1 1 4 4

    Jak je videt, jsou zde dve skupiny robotu se stejnym casem: cas 1 (roboti 1 a 2) a cas 4 (roboti 3a 4). Setkaj-li se dva roboti ze stejne skupiny, nic se nezmen, jejich casy zustanou stejne. Setkaj-lise ovsem dva roboti kazdy z jine skupiny, nemohou svuj cas zprumerovat, nebot vysledkem by bylapolocselna hodnota 2,5.

    Tedy tihle roboti by si nikdy nemohli cas sesynchronizovat a obecne by synchronizace v nekterychprpadech nefungovala.

    Ad 2: Ukazuje se, ze obe moznosti zaokrouhlovan - nahoru a dolu - maj naprosto srovnatelnouefektivitu. Provedl jsem meren pro 100 robotu, kde na zacatku byly casy rovnomerne rozdeleny v in-tervalu 0, 100) a zaokrouhleny dolu na cela csla. Pote se vzdy vybrali nahodne dva roboti, kter sisvuj cas zprumerovali a zaokrouhlili. Dvojice robotu se takto setkavaly tak dlouho, dokud se casyvsech robotu navzajem nerovnaly. Sledoval jsem, kolik setkan je pro tuhle synchronizaci potreba. Obe

    10

  • Setkan Zaokrouhlovano dolu Zaokrouhlovano nahoru

    Prumer 1201,3 1206,4Median 1189 1197Min. 894 889Max. 1797 1625Sm. odchylka 130,5 125,9

    Tabulka 1: Srovnan potrebneho poctu kroku pro synchronizaci.

    moznosti zaokrouhlovan jsem meril 1000krat. Vysledky jsou v tabulce 1.

    Histogramy rozlozen hodnot potrebneho poctu setkan jsou na obrazku 1.

    Obrazek 1: Histogram potrebneho poctu setkan k synchronizaci pri zaokrouhlovan dolu (vlevo) a na-horu (vpravo).

    Na obrazku 2 jsou zobrazeny menc se rozptyly v prubehu procesu synchronizace.4 Nesnizuj sesice kvuli zaokrouhlovan s kazdym setkanm, nicmene ke zvysen dochaz jen zrdka.

    Obrazek 2: Rozptyl v prubehu simulace pri zaokrouhlovan dolu (vlevo) a nahoru (vpravo).

    Ad 3: Nahodna volba pri kazdem setkan, jestli cas zaokrouhlit dolu ci nahoru, je z hlediska potrebnehopoctu setkan (a tedy potrebneho casu) mnohem mene efektivn. Tento vysledek se da predpokladat.Mejme naprklad cast robotu s casem 1 a cast s casem 2. Uvazujme, ze cas stoj, na vysledku to nicnezmen - rozdl casu obou techto skupin bude porad 1. Aby se synchronizovali, je nezbytne, aby sesetkavali roboti jedne skupiny s roboty skupiny druhe. Prumer hodnot 1 a 2 je 1,5. Zaokrouhluje-lise cas vzdy dolu, sjednot se roboti na case 1. Zaokrouhluje-li se nahoru, sjednot se na 2. Ale kdyzse vybra nahodne, kam zaokrouhlit, muze sjednocen trvat velmi dlouho. Je potreba az o n2 vce zao-krouhlen na jednu stranu nez na stranu druhou. Pravdepodobnost, ze se tak stane, je mala, a tudz

    4Vetsina zde uvedenych grafu je vysledkem nejakeho nahodneho procesu. Grafy ruznych realizac tohoto procesu sesamozrejme mohou mrne lisit. Snazil jsem se vybrat grafy co nejvce ilustrativn.

    11

  • na vyskyt tohoto jevu muzeme cekat velmi dlouho.To je dobre ilustrovano grafem na obrazku 4. Opet jsem sledoval 100 robotu, rozdelenych na

    zacatku rovnomerne v intervalu 0, 100) a zaokrouhlenych dolu. Priblizne do 1000. setkan je graftemer srovnatelny s grafy na obrazku 2. Pak uz je rozptyl casu celkem nzky, ale az na nulu klesavelmi pomalu a dosahne ji az po dalsch nekolika tiscch setkanch.

    Tabulka 2 ukazuje zpracovane namerene hodnoty zskane ze simulace tohoto zpusobu synchronizacepro 1000 meren. Rozptyl zskanych hodnot je obrovsky - nahoda zde hraje opravdu velkou roli, zejmenaod chvle, kdy se rozptyl casu zacne blzit nule.

    Setkan Nahodne zaokrouhlovano

    Prumer 6003,4Median 4609,5Min. 1242Max. 36354Sm. odchylka 4628,9

    Tabulka 2: Vysledky meren nahodneho zaokrouhlovan.

    Obrazek 3: Histogram potrebneho poctusetkan pro synchronizaci pri nahodnem zao-krouhlovan.

    Obrazek 4: Rozptyl v prubehu simulace prinahodnem zaokrouhlovan.

    Z porovnan vsech tr uvedenych moznost plyne, ze u linearnho diskretnho casu je jednoznacnenejleps vzt polocselny cas zaokrouhleny vzdy na tu stejnou stranu.

    3.3 Linearn spojity cas

    U spojiteho casu se nemusme zajmat o zaokrouhlovan, roboti si pri setkan pouze zmen cas nasvuj prumer. Na druhou stranu ale temer nikdy nedojdou do stavu uplne synchronizace - pravdepo-dobnost, ze by se tak stalo, je u velkeho poctu robotu velmi mala. Musme si tedy urcit presnost, kteranam postacuje. Az tehle presnosti dosahneme, prohlasme, ze roboti jsou sesynchronizovan.

    Pozadovanou nejvyss prpustnou presnost muzeme stanovit ruznymi zpusoby:

    1. Rozdlem maximalnho a minimalnho casu mezi roboty xmax xmin (tzv. rozpet).2. Rozptylem nas skupiny robotu, urcenym vzorcem

    var =1

    n

    ni=1

    (x xi)2

    Vyvstava jeden problem: cm nizs by byla cselna hodnota presnosti, tm presneji by se vlastneroboti synchronizovali. Aby to bylo naopak, tj. s rostouc hodnotou presnosti byly vysledky opravdupresnejs (casy robotu se mene lisily), zavedeme koeficient presnosti Q = 1presnost . Nechame pak robotysetkavat jen tak dlouho, dokud jejich rozpet ci rozptyl nedosahnou koeficientu presnosti Q.

    12

  • Obe uvedene moznosti se od sebe lis nasledujcm: u prvnho zpusobu budeme znat maximalnrozpet hodnot. Nevme ovsem nic o rozdelen casu. Jsou v nejakem mste vce koncentrovany, ci jsourozmsteny rovnomerne mezi hodnotami xmin a xmax? Bez blizsho prozkouman konkretnch hodnotnevme.

    Naproti tomu ve druhem zpusobu bude vetsina casu koncentrovana kolem jejich spolecneho arit-metickeho prumeru, nezname naopak jejich rozpet.

    Kazde urcen presnosti se muze hodit v jinych situacch. Zalez, co bychom s nasimi roboty dalezamysleli a jestli by pro nas bylo dulezitejs aritmeticky prumer casu, nebo jejich stredn hodnotu.

    Porovnejme, kolik setkan je prumerne potreba na dosazen zvolene presnosti (obrazek 5). Nasimu-lovany a namereny zde byly pro 50 robotu s pocatecnmi casy rovnomerne rozptylenymi v intervalu0; 50). Vidme, ze prubeh je logaritmicky.

    Obrazek 5: Potrebny pocet setkan v zavislosti na presnosti urcene rozdlem minimalnho a ma-ximalnho casu robotu (vlevo) a rozptylem casu (vpravo).

    Potrebneho poctu setkan srovnatelneho s pocty pri linearnm diskretnm case (pro 50 robotua 50 casu cca 480 setkan) dosahneme u presnosti urcene rozdlem minimalnho a maximalnho casuasi pri koeficientu presnosti Q = 0,35, tj. presnost = 10,35 = 2,86. U presnosti urcene rozptylem robotupri hodnotach asi Q = 0,01, tedy presnost = 100.

    3.4 Predpokladany cas po synchronizaci

    Muzeme sledovat puvodn rozdelen casu robotu pred synchronizac a cas, ke kteremu se na koncidostanou. Tyhle hodnoty spolu uzce souvis. Abychom mohli tuhle souvislost sledovat, je nutne u si-mulace bud zastavit ubhan casu (tj. nezvysovat vsem robotum cas po kazdem setkan), nebo odfinalnho casu odecst pocet setkan, ktery zde dky prave jednomu setkan za jednu casovou jednotkuodpovda ubehlemu casu.

    Spojity cas: U spojiteho casu cas robotu po synchronizaci odpovda (az na nepatrnou a zanedbatel-nou odchylku zavisejc na zvolene presnosti) aritmetickemu prumeru casu puvodnch (obrazek 6).

    Duvod je zde ilustrovan na trech robotech, A, B a C, zobrazenych na casove ose. Carkovane jezobrazen prumer puvodnch casu, ktere jsou na ose na 1. radku. S kazdym dalsm setkanm dvouruznych casu se nove casy priblizuj tomuto prumeru, viz vzdy dals a dals radek:

    1.

    2.

    3.

    4.

    5.

    6.

    7.

    A

    A

    A

    A

    A,B

    A,B

    A,B

    B C

    C

    C

    C

    B,C

    B,C

    B,C

    13

  • Obrazek 6: Zavislost casu po synchronizaci na prumeru casu puvodnch.

    Diskretn cas: U diskretnho casu, ktery zaokrouhlujeme nahoru nebo dolu, je vysledny cas bud vys-s nebo nizs nez prumer, a to prave v zavislosti na smeru zaokrouhlovan. Pri kazdem zaokrouhlentotiz zvysme (zaokrouhlen nahoru) nebo snzme (zaokrouhlen dolu) nektere dva casy vzhledemk jejich prumeru. Budeme ted uvazovat zaokrouhlovan nahoru a tedy zvysovan casu, vysledek prozaokrouhlovan dolu je pak pouze opacny. Zvysen finalnho casu, oznacme ho t, ukazuje obrazek 7.Je videt, ze finaln cas se zvysuje ruzne: naprklad na cas 56 se zde dostal z puvodnho prumeru asi48,5 az 52, tedy doslo ke zvysen casu o 4 az 7,5.

    Na cem zvysen zavis? Na poctu setkan. Cm vc setkan se zaokrouhlenm probehne, tm vcese bude vysledny cas lisit od pocatecnho prumeru. Pri kazdem zaokrouhlen se totiz cas nekterychrobotu nepatrne zvys. Tuto zavislost na poctu setkan, jak moc se lis finaln cas od puvodnhoprumeru, ukazuje obrazek 8. Na ose x je pocet setkan, na ose y pak rozdl finalnho a puvodnho casut. Opet neuvazujeme ubhan casu, resp. od finalnho casu odectame pocet probehlych setkan.

    Obrazek 7: Porovnan pocatecnho prumerua finalnho casu pri linearnm diskretnm casezaokrouhlovanem nahoru.

    Obrazek 8: Zavislost zvysen casu na poctusetkan.

    Hodnotami muzeme prolozit prmku ocekavanych hodnot. Ty budou nasledujc: S kazdym setka-nm se celkovy prumer bud nezmen, nebo zvys. O kolik se zvys?

    Dva vybrane casy xi a xj , i, j {1, 2, . . . , n 1, n} nam daj polocselny prumer (napr. 2 a 7 4,5).Ten zaokrouhlme nahoru (4,5 5). Bez tohoto zaokrouhlen by se celkovy prumer X vsech robotunezmenil (viz 3.1 - Dukaz synchronizace pro linearn cas). Pri zaokrouhlen zvysme hodnotu P =

    xi+xj2

    o 0,5, tedy soucet vsech casu vzroste o 1.[(nk=1

    xk

    ) xi xj + 2P

    ]

    nk=1

    xk = 1

    14

  • Protoze soucet n clenu vzrostl o 1, jejich prumer X vzroste o 1n .Vezmeme-li v uvahu, ze k zaokrouhlovan dochaz zhruba v polovine prpadu, vzroste X v prumeru

    pri kazdem setkan asi o 12n . Tedy pro n = 100 bychom ocekavali finaln zvysen casu o1200 poctu

    setkan. Skutecne zvysen je ale o neco nizs, tedy prpadu kdy dochaz k zaokrouhlen mus byt o necomene, nez 12 .

    Zmerme-li, v jake casti prpadu skutecne dochaz k zaokrouhlen, dostaneme hodnotu v prumeruasi 0,45. Oznacme ji k. Potom muzeme spoctat ocekavane hodnoty zvysen casu jako

    t =1

    n pocet setkan k

    Na obrazku 8 vidme, ze skutecne hodnoty zvysen casu jsou opravdu rozlozeny kolem prmkyocekavanych hodnot. K vetsm odchylkam dochaz pod touto prmkou pri vyssm poctu setkan. Toproto, ze vysoky pocet potrebnych setkan muze byt zpusoben nadprumernym setkavanm robotuse stejnymi casy. Tm se zvysuje pocet setkan, zatmco nedochaz k synchronizaci. Jsou to jakasi

    odpadn setkan, ke kterym prirozene dochaz. Pokud jich je ovsem pri nejake realizaci nahodneho

    setkavan vyrazne vce nez je prumer, dostaneme vysoky pocet setkan a pritom male zvysen casu.

    15

  • 4 Roboti s cyklickym casem

    Cyklickym rozumme takovy cas, ktery se po urcite dobe zacne opakovat, bez porad dokola.Pro predstavu treba vterinova rucicka na hodinach - cas 0 ukazuje stejne jako cas 60 s, 120 s,180 s, . . . Ukazuje nam cyklicky cas s periodou 60 s.U robotu muze mt cyklicky cas ten vyznam, ze naprklad chceme, aby kazdy den konali ty stejnecinnosti. Nen potom dulezite, zda je cas robota naprklad 5 dn a 3 hodiny, nebo 1 den a 3 hodiny.Perioda je zde 1 den, stac tedy brat pouze cas mens nez 1 den - ony 3 hodiny.

    Hodnota m, udavajc velikost intervalu, ve kterem jsou na zacatku casy rozlozeny, zde bude udavattake periodu casu neboli modulo.

    Cyklicky cas je zajmavy z hlediska synchronizace. Jak urcit rozdl dvou casu? Geometricky simuzeme predstavit casy rozmstene na kruznici, podobne jako u linearnho casu na prmce. Rozdly(neboli vzdalenosti) dvou casu na ose se nam potom nabz dva - krats a dels oblouk kruznice, urcenydvema casy, jejichz rozdl chceme urcit (Obrazek 9).

    xi xj

    x1

    x2

    Obrazek 9: xi a xj jsou ruzne casy, x1 a x2 jejich mozne prumery.

    Tomu odpovdaj i dva mozne prumery casu. Podobne, jako na linearn ose muzeme urcit aritme-ticky prumer dvou bodu jako stred usecky temito body urcene, budou na kruznici aritmeticke prumerydvou bodu stredy oblouku temito body urcenych. Na obrazku 9 je to prumer x1 pro krats oblouk a x2pro dels oblouk. Zmena casu bude znamenat zmenu polohy bodu na ose.

    Protoze chceme roboty synchronizovat, ukazuje se nutne, aby po setkan svuj cas nastavili naprumer lezc na kratsm oblouku. Tm se casy sobe priblz. V opacnem prpade by k synchronizacinemohlo dojt. Proc? Mejme temer sesynchronizovany soubor robotu, tj. body reprezentujc jejich caslez na kruznici blzko sebe. Dva z nich se setkaj a nastav si svuj cas na jejich vzajemny prumer.Pokud by tento prumer lezel na delsm oblouku kruznice urcenem temito body, je zrejme, ze by setyto body od ostatnch bodu oddalily.

    V simulaci doclme zvolen kratsho oblouku nasledujcm zpusobem:Vezmeme dva prumerovane casy. Pokud je jejich rozdl mens nez m2 , je vse v poradku a jejich

    normalne spoctany prumer lez na kratsm oblouku. V opacnem prpade, kdy je jejich rozdl vetsnez m2 , lez na kratsm oblouku pocatek osy (hodnota 0). Spoctany prumer je potom ten na delsmoblouku. Musme proto od prumeru hodnotu m2 odecst.

    Vysvetlm na prkladu: vezmete si klasicke hodiny s cifernkem. Cas 1 a 5 da prumer 3. To jev poradku, protoze pocatek osy (zde na cifernku hodnota 12 neboli 0) lez mimo krats oblouk. Pokudbychom ale vzali casy 11 a 3, prumer by byl 7, tj. presne opacny bod, nez spravna hodnota 1. Musmetedy k zskane hodnote 7 pricst (ci od n odecst) polovinu cifernku, coz je prave uvedenych m2 , nahodinach hodnota 6. Dostaneme hodnotu prumeru 1.

    4.1 Cyklicky diskretn cas

    U diskretnho casu bude perioda a velikost intervalu m zaroven udavat pocet ruznych casu, vekterych se roboti mohou nachazet. Aby to tak bylo, zaokrouhlme casy z pocatecnho rozdelen na celacsla dolu. V intervalu 0,m) mame prave m celocselnych hodnot: {0, 1, . . . , (m 1)}.

    Muze se stat, ze dva roboti, kter se prave setkali a chtej si prumerovat cas, budou na nas cyklickecasove ose lezet prmo naproti sobe, tj. oba oblouky budou stejne dlouhe (Obrazek 10). U diskretnho

    16

  • casu se tak muze stat pouze, je-li m sude. Potom musme vyresit, ktery oblouk vybrat. Vyhodnejs jeten, na kterem se nachaz vce dalsch robotu. To ale nevme (resp. prumerovan roboti nev) ktery je,takze jednu moznost vybereme nahodne. Budeme-li chtt simulovat synchronizaci bez teto nahody, jenejleps zvolit lichy pocet casu m.

    xi xj

    x1

    x2

    Obrazek 10: Na kterou stranu zvolit prumer, x1 nebo x2?

    Dal uz u synchronizace muzeme zaokrouhlovat na libovolnou stranu (nahoru nebo dolu), stejne jakou linearnho diskretnho casu. Vysledky simulace pro 100 robotu a 100 casu jsou porovnany v tabulce 3a v histogramech na obrazku 11. Opet jsou srovnatelne efektivn obe varianty zaokrouhlovan, stejne,jako tomu bylo u linearnho diskretnho casu.

    Setkan Zaokrouhlovano dolu Zaokrouhlovano nahoru

    Prumer 1492,5 1481,9Median 1469 1468Min. 1056 1007Max. 2216 2297Sm. odchylka 181,2 179,5

    Tabulka 3: Srovnan potrebneho poctu kroku pro synchronizaci.

    Obrazek 11: Histogram potrebneho poctu setkan u cyklickeho diskretnho casu zaokrouhlovanehodolu (vlevo) a nahoru (vpravo).

    Oproti linearnmu diskretnmu casu je ovsem pocet potrebnych setkan vyss. Nen to zpusobenopouze sudym m a tedy vnesenm nahody, ktery prumer zvolit v nekterych krocch. I kdyz totiz zvolmem liche, napr. 99, dostaneme potrebne pocty setkan priblizne 1480, tj. asi o 14 vce nez u linearnhodiskretnho casu s m = 100, n = 100.

    Take rozptyl je vyrazne vets.Jednm z duvodu, proc tomu tak je, muze byt fakt, ze u cyklickeho casu dochaz ke zvysen mry

    variability. To se projevilo u vsech zkousenych zpusobu jejho meren, viz dale. Otazka, zda je tohleopravdu prcinou a prpadne zda jsou i prciny dals, zustava nadale otevrena.

    17

  • 4.2 Cyklicky spojity cas

    U spojiteho casu situace zmnena vyse, kdy casy robotu lez na ose presne naproti sobe, realnenastat nemuze - jej pravdepodobnost je temer nulova, nebot mame nekonecne mnoho ruznych casuz intervalu 0;m).

    Opet musme urcit nejakou presnost, do ktere budeme synchronizovat. Poctu setkan jako pricyklickem diskretnm case odpovda, stejne jako tomu bylo u linearnho casu, koeficient presnostiQ = 0,35, tj. presnost = 2,86 pro presnost urcenou rozdlem minimalnho a maximalnho casu. Urcitpresnost rozptylem nen u cyklickeho casu dost dobre mozne, viz dale.

    Na obrazku 12 je histogram rozlozen hodnot poctu setkan u tohoto typu casu. Rozlozen jepodobne jako u cyklickeho diskretnho casu.

    Obrazek 12: Histogram potrebneho poctu setkan cyklickeho spojiteho casu

    Vyhoda cyklickeho casu, prestoze je potreba v prumeru vce setkan nez pri case linearnm, semuze projevit v nasledujc situaci: poustme roboty ve velkych casovych odstupech a bohuzel jim privypusten nemuzeme z nejakeho duvodu nastavit cas podle prvnho vypusteneho robota. Pokud byroboti operovali s casem linearnm, byl by interval jejich casu (hodnota m) hrozne velky. Pokud ale bu-dou operovat s cyklickym casem s vhodne zvolenou periodou, napr. 1 den, muze to jejich synchronizacivyrazne urychlit.

    4.3 Urcen mry synchronizovanosti robotu

    Je dulezite urcit zpusob, jakym budeme merit mru synchronizovanosti ci rozptylenosti. Poctanklasickeho rozptylu jako u robotu s linearnm casem se ukazuje problematicke. Je totiz potreba znatnejaky pocatek, od ktereho budeme casy merit. Mohli bychom si tento zacatek nekam na osu umstita na protejsm mste osu rozdelit a rozmotat. Tmto bychom dostali z cyklicke osy osu linearn, kdepocatek bude uprostred. Na jednu stranu pak pujde osa do zapornych hodnot od pocatku, na druhoudo kladnych (Obrazek 13 - pocatek v bode B, osa je rozdelena v bode A).

    Kdyz bychom pocatek zvolili pevne (naprklad pro cas 0), simulovali setkavan a po kazdem setkanrozptyl merili a zanaseli do grafu, dostali bychom graf vypadajc nejak takhle (Obrazek 14).

    Proc vypada zrovna takhle? Simulace byla zvolena s periodou 100 casovych jednotek. S touto perio-dou muzeme pozorovat i vykyvy k maximu a minimu. Na zacatku simulace byly casy robotu rozptylenyrovnomerne po cele ose. S kazdou casovou jednotkou se posunuly o jednu setinu obvodu. Dokud jsourozptyleny rovnomerne, rozptyl pro hodnoty merene od pevne daneho pocatku se v zavislosti na msterozstrihnut vcemene nemen. Jakmile vsak zacne byt v nejakem mste vets shluk hodnot, zacne serozptyl vychylovat v zavislosti na tom, jak daleko od pocatku se v danou chvli tento shluk nachaz.Bude-li kolem nuly, bude rozptyl ve svych minimalnch hodnotach; naopak ve chvli, kdy se dostaneod pocatku na druhou stranu k mstu rozstrihnut osy a cast ho bude na kladnem konci osy a cast

    18

  • AB

    B

    A

    A

    pi pi0

    X1

    X1

    X2

    X2

    X3

    X3

    Obrazek 13: Preveden cyklicke casove osy na linearn

    Obrazek 14: Menc se rozptyl pri pevne zvolenem pocatku

    na zapornem, rozptyl bude maximaln. Cm vets shluk hodnot bude, tm vets muzeme v teto situacinamerit rozptyl.

    Je jasne, ze tmhle zpusobem mra synchronizovanosti merit nepujde.

    Dals moznost, jak by se dal rozptyl urcovat, je podvat se na rozlozen bodu geometricky a hledatnejaky jejich stred. Kdyz uz mame casy zobrazene na kruznici, vezmeme je jako fyzikaln soustavustejnych hmotnych bodu, ktere se pokusme nahradit jednm, ktery bude mt stejne teziste jako celanahrazena soustava. Zcela urcite bude lezet uvnitr kruhu.5

    Jsou-li body rozmsteny na kruznici rovnomerne, lez jejich teziste ve stredu kruznice. Jak postupnedochaz k synchronizaci a v nejakem mste vznika shluk bodu, posunuje se teziste k tomuto mstu. Priuplne synchronizaci lez vsechny body v jednom mste, a tedy v tomto mste na obvodu kruznice lezi jejich teziste.

    Poloha teziste se da spoctat. Nejdrve musme urcit polohu kazdeho bodu v rovine tak, aby vsechnybody lezely na kruznici. Urceme si tedy jednotkovou kruznici se stredem v pocatku souradnic, to budenase cyklicka casova osa. Nulu na ni umstme tam, kde protna kladnou cast osy x, hodnoty sebudou zvysovat v kladnem smeru, tj. proti smeru hodinovych rucicek. Cyklicky cas ma periodu m.Urcme tedy uhlovy rozdl dvou casu liscch se o jednu casovou jednotku jako 2pim . Polohu kazdehocasu ti [tix, tiy] pro kazde i od 1 do n (pocet robotu) ted urcme jako

    tix = cos

    (2pi

    mti

    ), tiy = sin

    (2pi

    mti

    )

    5Spolecne teziste hmotnych bodu lez - jsou-li hmotnosti nezaporne - uvnitr konvexnho obalu techto bodu. Zde bodylez na kruznici, tedy i jejich konvexn obal lez ve vnitrn oblasti kruznice.

    19

  • xy

    0

    1

    1

    1

    1

    ti[cos

    (2pim ti

    ), sin

    (2pim ti

    )]

    tix

    tiy

    Obrazek 15: Bod v rovine, lezc na cyklicke casove ose

    Teziste oznacme C. Jeho polohu C [Cx, Cy] spoctame jako

    Cx =1

    n

    ni=1

    tix, Cy =1

    n

    ni=1

    tiy

    (Viz napr. [3], str. 260).Muzeme sledovat vzdalenost l teziste od stredu kruznice, resp. od kruznice samotne. Vzdalenost

    od stredu snadno spoctame jako:

    l =C2x + C

    2y

    Vzdalenost od jednotkove kruznice pak jako 1 l. Tuto vzdalenost muzeme zanest do grafu(Obrazek 16).

    Obrazek 16: Menc se vzdalenost teziste bodu od kruznice v prubehu simulace synchronizace.

    Je jasne videt, ze ani tentorozptyl neklesa plynule, obcas stoupa docela dost, a to jak pro

    diskretn, tak pro spojity cas.

    Jeste vyzkousme vzt prumet teziste na osu (prunik poloprmky vedene ze stredu kruznice presteziste s osou, viz obrazek 17) a tento prumet povazovat za pocatek. Pro kazdy cas urcme jehovzdalenost po kruznici od tohoto prumetu a spocteme rozptyl techto vzdalenost.

    Vzdalenost casu od prumetu teziste urcme opet z uhloveho rozdlu. Uhel v kladnem smeru, ktery

    20

  • xy

    0

    1

    1

    1

    1

    t1

    t2

    t3

    C

    P

    Obrazek 17: Prumet P teziste na osu.

    svra poloprmka vedena ze stredu kruznice pres teziste s osou x zjistme z polohy teziste:(cos =

    Cxl

    )(

    sin =Cyl

    )Uhel kazdeho casu ti jsme jiz drve urcili jako

    2pim ti. Delka oblouku jednotkove kruznice odpovda

    velikosti uhlu v radianech. Muzeme tedy spoctat rozptyl:

    var =1

    n

    ni=1

    min

    [(2pi

    mti

    )2, 2pi

    (2pi

    mti

    )2]

    Hodnota

    min

    [(2pi

    mti

    )2, 2pi

    (2pi

    mti

    )2]nam zaruc vyber kratsho z oblouku, spojujcch prumet teziste s vybranym bodem.

    Ovsem kdyz vykreslme graf takhle spoctanych rozptylu (obrazek 18), vidme, ze ani tato cestanikam nevede.

    Obrazek 18: Rozptyl vzdalenost casu od prumetu teziste.

    K zadnemu efektivne fungujcmu meren rozptylenosti casu se asi nedostaneme. Jak je potommozne, ze se system nakonec sesynchronizuje? Proc simulace skonc vzdy synchronizac casu?

    Podvejme se na to jinak.

    21

  • 4.4 System, stav systemu, prechody mezi stavy

    Nase soustava robotu tvor urcity system. System se nachaz v urcitem stavu, ktery je charakteri-zovan tm, ze kazdy robot ma nejaky svuj cas. Kdyz se cas treba jen jedineho robota zmen, rkame,ze system prejde do stavu jineho.

    Stavy muzeme charakterizovat usporadanou n-tic casu vsech robotu (t1, t2, . . . , tn). Ma-li systemn robotu a kazdy z nich muze mt m ruznych casu, potom existuje celkem nm stavu, ve kterych sesystem muze nachazet.

    Jiny zpusob popisu systemu je pomoc usporadane m-tice poctu robotu, nachazejcch se v danychcasech.

    Napr. (1, 1, 2, 0, 1, 3, 2, . . .) znacCas 0 1 2 3 4 5 (m 1)Pocet robotu 1 1 2 0 1 3 2

    Tento druhy zpusob lze vyuzt pouze u robotu s diskretnmi casy, nicmene je pro nas vyhodnejs.Pocet moznych stavu, respektive jejich zapisu, je totiz vyrazne nizs nez u prvnho zpusobu. (Stavytr robotu a tr moznych casu (0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1) a (2, 1, 0) zapseme souhrnnedruhym zpusobem jako (1, 1, 1), nebot na porad robotu nam nijak nezalez.)

    4.4.1 Vizualizace jednoducheho systemu

    Jednoduss system muzeme vizualizovat jako orientovany graf. Jednotlive stavy budou vrcholya mozne prechody mezi nimi orientovane hrany. Ne kazde dva vrcholy budou hranou spojeny, tj. z nek-terych stavu se nepujde dostat prmym prechodem (bez nejakych mezistavu) do nekterych stavu jinych.

    System 3 robotu a 3 moznych casu je zobrazen prvnm zpusobem na obrazku 19. Je uvazovancyklicky cas se zaokrouhlovanm nahoru, ale ubhan casu je zastavene. Popisky u hran rkaj, kterdva roboti se pri tomhle prechodu setkali (napr. z prvnho stavu (0, 1, 2) do stavu (1, 1, 2) vede hranapopsana ab, tedy setkali se roboti a s casem 0 a b s casem 1).

    Pocatecn stav je zvolen (0, 1, 2). To je jeden z 6 stavu, kdy maj vsichni roboti ruzny cas. To jenejpravdepodobnejs rozdelen - roboti jsou rovnomerne rozdeleni ve vsech 3 moznych casech.

    (a,b,c) (0,1,2)

    (1,1,2)

    ab

    (0,2,2)

    bc

    (0,1,0)

    ac

    ab

    (1,2,2)

    bc

    (2,1,2)

    ac

    bc

    (0,0,2)

    ab

    (0,2,0)

    ac

    ac

    (1,1,0)

    ab

    (0,1,1)

    bc

    bc

    (2,2,2)

    ab ac

    ac

    ab bc

    ab

    (0,0,0)

    bc ac

    ac

    ab bc

    ab

    (1,1,1)

    bc ac

    bc

    ab ac

    Obrazek 19: Vizualizace 3 robotu a 3 casu.

    Druhym, jednodussm zpusobem, jej nakreslme jako na obrazku 20. Popisky u hran ted nerkaj,kter roboti se setkali, ale jake meli casy (napr. z prvnho stavu (1, 1, 1) do stavu (0, 2, 1) vede hranapopsana 01, tedy setkal se robot s casem 0 s robotem s casem 1).

    System 3 robotu a 3 casu ma jednu neprjemnou vlastnost. Moznych casu je tak malo, ze setkaj-li se dva roboti s ruznym casem, svuj prumer pak zaokrouhl na jeden z puvodnch casu setkanychrobotu:6

    {0; 1} x = 0,5 {0; 0} {1; 1}6U tretho prpadu je zde x = 2,5 a ne x = 1 kvuli mechanismu synchronizace s cyklickym casem - musme zvolit

    prumer, ktery se nachaz na mensm oblouku.

    22

  • asy: (0,1,2)zaokrouhlen nahoru (1,1,1)

    (0,2,1)

    01

    (1,0,2)

    12

    (2,1,0)

    02

    11

    (0,1,2)

    12

    22

    (2,0,1)

    02

    00

    (1,2,0)

    01

    22

    (0,0,3)

    12

    00

    (3,0,0)

    02

    11

    (0,3,0)

    01

    Obrazek 20: Jednoduss vizualizace 3 robotu a 3 casu.

    {1; 2} x = 1,5 {1; 1} {2; 2}{2; 0} x = 2,5 {2; 2} ({3; 3} {0; 0} (mod 3))

    Vets system by vsak slo vizualizovat jen velmi obtzne, nebot pocet moznych stavu by byl mnohemvyss.

    Do vizualizace muzeme zahrnout i ubhan casu (Obrazek 21). Setkavaj-li se roboti se stejnymcasem, jejich dva casy se neprumeruj a dochaz pouze ke zvysen kazdeho casu o 1 casovou jednotkua nasledne uprave nove vzniklych casu modulo m. To se projev

    posunutm csel v m-tici casu o jedno

    msta doprava aprelitm poslednho csla na prvn msto (napr. (0, 2, 1) (1, 0, 2) (2, 1, 0)).

    asy: (0,1,2)zaokrouhlen nahoru

    (1,1,1)

    (1,0,2)

    (2,1,0)

    (0,2,1)

    (1,2,0)

    (0,1,2)

    (2,0,1)

    (0,0,3)

    (3,0,0)

    (0,3,0)

    Obrazek 21: Vizualizace 3 robotu a 3 casu cyklicky.

    Jak je videt, stavy jsou rozdeleny do jakychsislupek podle minimalnho poctu kroku do tohoto

    stavu ze stavu pocatecnho. Nejnizs slupka je prave pocatecn stav, nejvyss je tvorena koncovymistavy v hranatych rameccch. Stavy nachazejc se v jedne slupce mezi sebou mohou prechazet staledokola podle nakreslenych sipek.

    Dky cyklicnosti casu muzeme provest dals zjednodusen grafu: stavy v kazde slupce, protozemezi sebou mohou stale dokola prechazet, nahradme jednm, jehoz zapis bude mt nuly co nejvce

    23

  • na zacatku. Zde konkretne se jedna o stavy (0, 2, 1), (1, 0, 2) a (2, 1, 0), msto kterych budeme psatpouze (0, 2, 1). Obdobne dals slupku souhrnne zapseme (0, 1, 2). I konecne stavy, prestoze u nichnemame naznaceny sipky (prechodem do tohoto stavu totiz prestavame proces sledovat, nebot jesesynchronizovany) muzeme zapsat (0, 0, 3).

    K jednotlivym prechodum muzeme dopsat jejich pravdepodobnosti. Zskame je z poctu moznychstavu, do kterych muze system ze stavu soucasneho prejt. K tomu potrebujeme rozepsany graf, jakybyl na obrazku 20. Z vychozho stavu (1, 1, 1) ma v tomto prpade 3 robotu a 3 casu 3 moznosti,ktere jsou ve zkracenem zapise grafu 22 zapsany stejne jako (0, 2, 1). Tedy pravdepodobnost prechoduze stavu 1 do stavu 2 je p12 = 1. Z druheho stavu jsou mozne opet 3 cesty. Jedna tvor smycku nadruhem stavu a 2 vedou do stavu tretho.7 Pravdepodobnost p22 =

    13 a p23 =

    23 . Obdobne urcme

    i pravdepodobnosti p33 =13 a p34 =

    23 .

    (1,1,1) (0,2,1)p = 1

    p = 1/3

    (0,1,2)p = 2/3

    p = 1/3

    (0,0,3)p = 2/3

    Obrazek 22: 3 roboti, 3 casy, sjednoceny zapis nekterych stavu.

    Prechody mezi stavy jsou mozne pouze jednm smerem, nanejvys se system muze v jednom stavuzdrzet dele, nemuze se vracet do stavu predchozch. Tohle je ovsem pouze hypoteza. Zda jsou pouzejednm smerem mozne prechody i ve slozitejsm systemu vce robotu a vce casu nemam dokazane.

    Kdyby ano, znamenalo by to, ze system mus dojt do synchronizovaneho stavu, tedy dukaz, prock synchronizaci dojde.

    7Roboti maj bez urcen sveho porad casy (zapsane n-tic casu, tedy nikoliv pocty casu) (0, 0, 1), (1, 1, 2) nebo(2, 2, 0). Bez ujmy na obecnosti predpokladejme, ze jde o stav (0, 0, 1). Muzou se tedy setkat casy (0, 0), (0, 1) nebo (0, 1).Dve z techto setkan povedou, protoze zaokrouhlujeme nahoru, na stav (0, 1, 1), jedno na soucasny stav (0, 0, 1). Protopravdepodobnost, ze system v tomto stavu zustane, je p22 =

    13

    a pravdepodobnost prechodu na dals stav je p23 =23.

    24

  • 5 Vypocet potrebneho casu

    Pomoc jednotlivych stavu a pravdepodobnostn prechodu mezi nimi se da teoreticky dojt k pru-mernemu potrebnemu poctu setkan i vypoctem, alespon u diskretnho casu. Potrebovali bychom znatvsechny stavy, ve kterych se system muze nachazet. Tech je konecny pocet, ale obrovsky. Oznacme hos. Pro n robotu a m casu je moznych stavu s = mn (variace n-te trdy z m prvku s opakovanm). Jejichpocet bychom mohli o neco snzit pomoc slucovan nekterych stavu stejne, jako jsme zjednodusovaligrafy.

    Na hodnotu s =(n+m1

    m

    )jej snzme, pokud vyuzijeme zapisu m-tice poctu robotu v danych

    casech msto n-tice casu robotu. Delme totiz pocet robotu mezi m casu a zajma nas, kolika zpusobyto muzeme udelat, tj. pocet kombinac m-te trdy z n prvku s opakovanm.

    Dalsho snzen dosahneme, pokud stavy, ktere mezi sebou v case muzou prechazet (napr. u 3 robotua 3 casu stavy (0, 1, 2), (2, 0, 1) a (1, 2, 0) zapsane m-tic casu), nahradme jednm. Tohle snzen nebudeovsem vzdy stejne, proto muzeme pocet stavu tmto zapisem urcit jen velmi tezko. Porad jich budevelmi mnoho.

    Dale bychom museli znat pravdepodobnosti prechodu mezi kazdymi dvema stavy. Spousta by jichbyla samozrejme nulova, protoze ne mezi kazdymi dvema stavy existuje cesta. Tyhle pravdepodobnostibychom poskladali do matice pravdepodobnost prechodu za jeden krok P , ktera by mela s radkua s sloupcu.

    Tento system totiz tvor takzvany Markovuv retezec [4]. Mame-li urcene pravdepodobnosti pre-chodu mezi kazdymi dvema stavy, jsme schopni spoctat, v jakem stavu se s jakou pravdepodobnostbude system po k krocch nachazet umocnenm puvodn matice pravdepodobnost prechodu na k.Tedy pravdepodobnost prechodu za k kroku P (k) = P k.

    Potom bychom mohli souctem nekonecne rady spoctat i to, kolik setkan bude prumerne potreba:

    Setkan = 1 p(1)1s + 2 (p(2)1s p(1)1s

    )+ 3

    (p(3)1s p(2)1s

    )+ . . . =

    k=1

    [k(p(k)1s p(k1)1s

    )]kde p

    (k)1s je pravdepodobnost prechodu z prvnho do poslednho (s-teho) stavu za k kroku, tedy pr-

    slusna hodnota k-te mocniny matice pravdepodobnost prechodu za jeden krok P . Navc dodefinujme

    p(0)1s = 0.

    Hodnota(p(k)1s p(k1)1s

    )udava pravdepodobnost, ze system dosel do stavu synchronizace prave

    v tomto k-tem kroku. Jde tedy o jakysi prrustek pravdepodobnosti, ze system je jiz synchronizovany.

    25

  • 6 Zavislost trvan synchronizace

    Lze ocekavat, ze cm vce robotu bude nas system obsahovat, tm vce bude potreba k synchronizacisetkan a cely proces bude trvat dele. Obdobne s velikost intervalu, ve kterem budou casy na zacatkurozptyleny. Jakym zpusobem vsak prumerny cas potrebny pro synchronizaci v zavislosti na techtodvou faktorech roste? A jak se u spojiteho casu projevuje zvolena presnost?

    Stejne typy zavislosti dostaneme pro linearn i cyklicky cas, spojity i diskretn.

    6.1 Zavislost na poctu robotu

    Vezmeme nejaky pevny interval, ve kterem budou casy robotu rozdeleny. Vhodne je zact s casyod 0, abychom velikost intervalu mohli charakterizovat jednou promennou m. Interval tedy bude0;m). U robotu s diskretnm casem zaokrouhlme vsechny casy dolu na nejblizs nizs cele cslo. Je-licas cyklicky, zvolme m take jako jeho modulo - potom bude udavat pocet casu, ve kterych se robotimohou nachazet. Pocet robotu n budeme postupne zvysovat od minimalnch 2. Pro kazde n provedemenekolik meren, jejichz vysledky zprumerujeme. Vysledny potrebny pocet setkan v zavislosti na pocturobotu vykreslme do grafu (obrazek 23 - zde zvoleno m = 50).

    Obrazek 23: Zavislost poctu setkan na poctu robotu.

    Je dobre videt, ze prumerny potrebny pocet setkan se zvysuje linearne. Rychlost zvysovan zavisna hodnote m, tedy na velikosti zvoleneho intervalu. Cm vets m zvolme, tm rychleji pocet setkanporoste (rychlost se bude zvysovat logaritmicky, viz nze), ovsem bude stale linearn.

    6.2 Zavislost na velikosti casoveho intervalu

    Tentokrat naopak vezmeme pevny pocet robotu a budeme menit velikost intervalu, ve kterem bu-dou casy pred zacatkem synchronizace rozptyleny, resp. pocet casu, ve kterych se mohou nachazet.Graf zavislosti potrebneho poctu setkan na velikosti intervalu je na obrazku 24. Tady je zavislostlogaritmicka.

    Muzeme vlastne o (teoretickem) potrebnem poctu setkan u diskretnho casu nebo spojiteho s pev-ne zvolenou presnost mluvit jako o funkci dvou promennych, m a n.

    Pocet setkan f(m,n) = n logm

    Pokud bychom nasli k teto funkci vhodne koeficienty, mohlo by se jednat o dobry obecny popissynchronizace. Umoznil by nam velmi jednoduse zjistit ocekavany cas pouze na zaklade znalosti pocturobotu a casu.

    26

  • Obrazek 24: Zavislost poctu setkan na poctu casu.

    6.3 Zavislost na zvolene presnosti

    Jak jiz bylo zmneno vyse, u spojiteho casu se potrebny pocet setkan men take v zavislosti nazvolene presnosti. Pokusme se sledovat jak. Vezmeme pevne hodnoty m i n, naprklad m = 50, n = 50,a budeme menit presnost. Budeme sledovat jak presnost, tak koeficient presnosti Q.

    Obrazek 25: Zavislost poctu setkan na zvolenepresnosti.

    Obrazek 26: Zavislost poctu setkan na koefi-cientu presnosti Q.

    Na obrazku 25 je videt logaritmicka zavislost na presnosti. Proto na obrazku 26 zavislost nakoeficientu Q odpovda 1log (presnost) .

    27

  • Zaver

    V teto praci se povedlo porovnat, jak jsou jednotlive zpusoby synchronizace z hlediska potrebnehocasu efektivn. Mene potrebnych setkan se ukazalo potreba u linearnho casu, ktery je i z hle-diska slozitosti algoritmu na synchronizaci snazs. Diskretn cas lze resit pouze zaokrouhlovanm ne-celocselnych hodnot, a to vzdy na stejnou stranu, nahoru ci dolu. Obe moznosti se ukazaly jakorovnocenne, dosahneme pomoc nich srovnatelnych vysledku. Pri nahodne volbe smeru pri kazdem za-okrouhlovan je pravdepodobnost, ze se roboti synchronizuj, nzka, a tedy pocty potrebnych setkanjsou pak velmi vysoke.

    Dale se povedlo dokazat, ze rozptyl robotu u linearnho spojiteho casu se nemuze zvysovat, zeproces vede jednoznacne k vysledne synchronizaci vsech casu. U linearnho diskretnho muze dochazetz duvodu zaokrouhlovan i k velmi mrnemu zvysen rozptylu, ktere je ovsem temer zanedbatelne.

    V pate kapitole jsem naznacil zpusob, jakym by se dal prumerny potrebny pocet setkan spoctat.Vyuzili bychom pritom vlastnosti Markovovych retezcu a operace s nimi. Jednalo by se ovsem o vy-pocty slozite a casove velmi narocne, proto zustalo pouze u tohoto teoretickeho naznacen.

    Nakonec jsem ukazal zavislosti trvan synchronizace na poctu robotu, velikosti pocatecnho inter-valu casu a u spojiteho casu eventualne take presnosti.

    Zustavaj otevrene nektere otazky. Proc je linearn cas na synchronizaci rychlejs, tedy proc potre-buje mene setkan nez cyklicky? Je to opravdu zpusobeno tm, ze obcas dojde ke zvysen rozptylu?Jakym zpusobem vubec merit mru rozptylen u cyklickeho casu? Take nen dukaz, proc k synchronizaciu cyklickeho casu vubec dojde.

    Prace byla napsana v ramci souteze SOC ve skolnm roce 2014 - 2015. Doufam, ze nezustane jenjako prace napsana pro soutez, ale ze najde i sve dals uplatnen.

    28

  • Literatura a zdroje:

    [1] FURST, Tomas. Svetlusky, larvy, hadi ... dostanu ja nekdy normaln napad?. In:S Fulbrightem na Northwestern [online]. 18.2.2013 [cit. 2015-01-10]. Dostupne z:http://furstovi.blogspot.cz/2013/02/svetlusky-larvy-hadi-dostanu-ja-nekdy 17.html

    [2] The R Project for Statistical Computing [online]. 2004 [cit. 2015-01-21]. Dostupne z:http://www.r-project.org/

    [3] BARTSCH, Hans-Jochen. Matematicke vzorce. 1. vyd. Praha: Statn nakladatelstv technickeliteratury, 1963.

    [4] HRON, Karel a Pavla KUNDEROVA. Markovovy retezce a jejich aplikace. 1. vyd. Olomouc:Univerzita Palackeho v Olomouci, 2012. ISBN 80-244-3132-7.

    29