Čištění ropné skvrny
Definice problému
Kapitola obsahuje zadání simulace. Vzhledem k určitým změnám bylo nutné zadání v některých bodech upravit. Kostra simulace zůstane stejná.
Původní zadání
V případě havárie ropné plošiny či tankeru uniká do moře tisíce tun ropy. Předmětem simulace bude otázka, kdy je optimální počet plavidel schopno ropu z moře odsát za určitý čas. Mezi parametry se bude řadit rychlost úniku ropy a počet „odsávacích“ plavidel. Dále bude i nastavitelná počáteční velikost skvrny v tunách, což bude počáteční stav, kdy lodě začnou ropu odsávat. Nejhlavnější body nastavení budou finanční mantinely při likvidaci skvrny a požadovaný počet dnů na uklizení. Součástí této mise bude i ponorka pro opravu zdroje ropy. Jakmile se dostane ke zdroji úniku, zvětšování ropné skvrny ustane. Každá z lodí bude mít konstantní rychlost odsávání. Pokud v lokalitě, kde se loď nachází, není žádná skvrna loď se „posune“. Každá loď má omezenou kapacitu a po jejím naplnění se musí vrátit do přístavu. Situaci komplikuje fakt, že ropa se na moři rychle rozplývá do okolí, tudíž jedním z parametrů bude i rychlost rozptylování skvrny. Simulace bude probíhat na 1 tick jako 1 hodina, přičemž budou sledovány navyšující se finance při provozu lodí za den a počet dní. Pokud se jedna z hodnot dostane za parametrizovatelné stavy (celkové finance a počet dní k úklidu havárie), hodnota změní barvu.
Upravené zadání
Na rozdíl od předešlého zadání bylo zapotřebí upravit několik nepřesností, které vyšly najevo při vytváření simulace. Mezi parametry se již neřadí požadovaný počet dní na zažehnání ropné katastrofy, neboť není tato informace pro účely simulace podstatná. Hlavním bodem sledované veličiny v této simulaci zůstává čas a finanční zdroje pro záchrannou misi. Výsledné hodnoty nebudou měnit barvu.
Další změnou je měření času probíhající simulace. 1 tick se v následující simulaci počítá jako 1 minuta, z kosmetických důvodů byla nahrazena hodina, aby bylo možné vzhledem k ploše, která je k dispozici, sledovat pohyb lodí. Rychlost lodí bude rozebrána v kapitole "Model".
Mezi nové parametry byly zařazeny následující:
- Rychlost ponorky (Ponorka představuje ve skutečnosti plavidlo, které neodčerpává ropu, ale dokáže na místě opravit závadu.)
- Interval kapacity nasazených lodí (pro každou loď je náhodně vybrána hodnota z intervalu)
- Návrat lodí po odčerpání ropy do doků (náklady na akci vzrůstají s časem)
Metoda
Typ simulace: Multiagentní
Nástroj: NetLogo 5.3.1
Prostředkem simulace je zkonstruování vhodného modelu, podle kterého je možné určit povahu reálné situace a nejoptimálnější a těžko zjistitelné výsledky. Pro následující konstrukci byl použit nástroj NetLogo, který umožňuje zachytit různé druhy systémů.
Jakýkoliv model, je nedokonalý. Cílem modelování prostředí ale není vytvořit dokonalou repliku reálného světa, ale takovou realitu, která umožní přibližně zobrazit, jak fungují zákonitosti definovaného problému.
Model
Jakýkoliv model, je nedokonalý. Cílem modelování prostředí ale není vytvořit dokonalou repliku reálného světa, ale takovou realitu, která umožní přibližně zobrazit, jak fungují zákonitosti definovaného problému.
Uživatelské rozhraní
Plátno simulace je 64 bodů vysoké a 64 bodů široké. Jeden patch představuje 10 * 10 km, tudíž modelová plocha dokáže simulovat havárie až do vzdálenosti přibližně 905km od pobřeží. Lodě a ponorka jsou samozřejmě zvětšeny, nicméně rychlost je upravena tak, aby odpovídala realitě. Břeh je vyznačen zelenou barvou.
Dále, jak je z obrázku patrné, lze nastavit spousty proměnných, které mohou simulaci dále ovlivnit. V následující zprávě jsou však vybrány pouze některé klíčové parametry, ostatní mohou sloužit pro další užití. V kapitole O rozvoji aplikace je zahrnuta doporučený rozvoj, pokud by v následujících letech někdo hodlal tento model vylepšit (přiblížit realitě).
Ovládání Simulace
Simulaci nejdříve uživatel nastaví požadované proměnné. Tlačítkem Nastav počáteční hodnoty se připraví pole pro simulaci. Pokud je třeba, lze změnit pozici ponorky, kliknutím na Nastav ponorku a následným kliknutím do pole simulace. Tlačítkem Simuluj se uvede simulace v pohyb. Konec simulace je podmíněn odčerpáním veškeré ropy a opravením havárie - epicentra jejího úniku. V rohu obrazovky je aktuální množství ropy v docích.
Output monitor pravidlně vypisuje stav ropy v moři, kumulované náklady a zaznamenává důležité události. Graf pod ním ukazuje množství aktuální ropy v moři, aktuální ropu v přístavu, odsátou ropu a celkový únik ropy do moře. Je závislý na čase.
Agenti
Agenti jsou zastoupeni loděmi a ponorkou z nichž každý má specifické vlastnosti.
Loď
- Jedná se o útvar používaný při sběru ropy. Hlavním prvkem je větší loď, ve které se nachází nádrže a čerpadla na ropu. Ta je doprovázena menší pomocnou lodí. Obě jsou spojeny dlouhým plovákem, který ropu přibližuje čerpadlu. V simulaci je značena jako anglicky ship.
- Její rychlost se pohybuje okolo 13 uzlů, převedeno na 24km/h.
- Po nastavení vstupních parametrů jsou lodě rozmístěny náhodně na moři
- Každá loď má omezenou kapacitu, která se určuje intervalem. Podle údajů zde doporučuji omezit nosnost na maximálně 2500 tun.
- Po dosažení kapacity se vrací do přístavu, kde náklad vyloží
- Loď vyhledává nejbližší skvrnu
- Pro přehled je u lodi zobrazeno, kolik převáží nákladu
Ponorka
- Ponorka je agent, představující plavidlo, které je schopno se dopravit k epicentru úniku ropy.
- Ponorka nesbírá ropu, dokáže však opravit závadu a tím zamezí dalšímu vytékání ropy do moře.
- Pokud je ponorka na místě a zamezí prosakování ropy do moře, událost opravy je ohlášena a ponorky již není zapotřebí.
- Ponorka se umísťuje do simulace na předem určené místo, myší.
Prostředí
Simulace má 4 základní druhy prostředí.
Moře
Nejrozšířenějším prostředím je v této simulaci moře. Je zastoupeno modrým patchem. Velikost jednoho patche je 10km2. Pokud má patche barvu moře, znamená to, že se žádná ropa v tomto úseku nevyskytuje.
Ropná skvrna
Ropná skvrna je vyobrazena hnědým patchem. Ačkoliv je to patch o rozměru 10 x 10 km, má ropa vlastní velikostní atribut. Tou je počet tun ropy na vyznačeném čtverci. (Všechny patche mají tento atribut, jen u tohoto je nenulový, kladný.) Ropnou skvrnu může odstranit pouze agent Ship (Loď). Vzhledem k nosnosti lodi nemusí dojít k úplnému vyčerpání ropy. Podle tohoto zdroje Oil_Spill_Stats_2016 si lze vypočítat, že na jeden čtvereček moře (100km2) se může nacházet až 2000t ropy. Ropa má navíc ještě vlastnost rozptylování díky vnějším vlivům, hlavně tedy vlnami.
Epicentrum
Tento patch je v simulaci pouze jeden. Je to náhodně zvolený bod, ze kterého se ropa tvoří. Jeho barvou je červená. Dokud existuje v simulaci takto zbarvený patch, uniká do moře ropa rychlostí, která je uvedena parametrem. Umístění epicentra je klíčové, neboť vzdálenost od břehu má velký dopad na rychlost čištění. Únik ropy lze zažehnat pouze agentem Submarine (ponorkou).
Doky
Doky hrají důležitou součást simulace. Slouží jako centrální sklad ropy, do které se lodě s plnou nádrží vrací. Jejich úkoj je vyčerpat lodi nádrž, aby se mohla vrátit zpět na moře, kde bude pokračovat v čištění.
Parametry
Mezi parametry jsou řazeny všechny proměnné, které může uživatel nastavit pomocí vstupních polí. Jedná se o následující.
- Nastav ponorku - Stisknuté tlačítko slouží pro umožnění vložení ponorkového plavidla do pole simulace. Vkládát ponorku lze levým tlačítkem myši. Pokud nebude ponorka nastavena, simulace ji umístí náhodně.
- Rychlost úniku ropy - Je udávaná v tunách za minutu (minuta = tick) a určuje jak rychle budou "Hnědé čtverečky" na plátně přibývat. Nejtěžší zásah je omezen na 50t/m.
- Poloměr počáteční velikosti skvrny - Slouží pro urychlení simulace. Nastavením se určí, kolik ropy se nachází v bezprostředním okolí epicentra úniku. Poloměr je udávaný v km. Maximální velikost poloměru je 100km.
- Rychlost rozptylu skvrny - Jak rychle se bude měnit struktura skvrny.
- Počet lodí - Další z klíčových parametrů, jehož hodnota ovlivňuje počet lodí v simulaci. Uživatel vybírá z intervalu <1; 100>.
- Rychlost ponorky - Jedná se o méně důležitý parametr, nikoliv však nepodstatný. Jeho rozsah se pohybuje na škále od 12 do 80 km/h. (Nejedná se v realitě o ponorku, nýbrž plavidlo, které ponorku na místo určení přiveze. Ponorky takové mezí rychlosti samy nedosahují.)
- Minimální a maximální náklad - Uvedeno v tunách. Je to rozmezí, ze kterého jsou náhodně vybrány maximální kapacity všech lodí.
- Lodě se vrací do přístavu - Po odčerpání veškeré ropy a opravení závady určuje, jestli se mají naložené lodi vracet zpátky do doků.
Monitory
- Stav havárie - Zobrazuje, zdali je zdroj úniku ropy opravený.
- Tun ropy v moři - Kolik ropy se aktuálně nachází v moři.
- Počet dní - Zobrazuje počet dní akce.
- Počet hodin
- Celkové náklady - Jaké jsou celkové náklady během simulace.
- Překročeny náklady - O kolik jsou náklady překročeny.
- Překročeny náklady v % - Procentní zobrazení výše uvedeného
- Obecný monitor - Je to klíčová část výstupu simulace. Zobrazuje průběh simulace po dnech a ukazuje kolik bylo dosud kumulativně utraceno peněz. Dále jsou zde různé převratné události, ke kterým může v simulaci dojít. Na konci simulace se zde vypíše souhrn.
Průběh simulace
Na začátku je nutné nastavit požadované parametry. Jako poslední parametr je doporučeno nastavit pozici ponorky, protože jakmile uživatel stiskne "Nastavit počáteční hodnoty", simulace se resetuje s nastavenými parametry. Použiji nástroj Netloga BehaviorSpace, ve kterém lze pro každou situaci definovat parametry a kolikrát pro každé nastavení parametrů bude simulace spuštěna.
Co bude zkoumáno
Simulace bude spuštěna několikrát se stejnými parametry, ze kterých pak lze průměrem zobrazit výsledek. Cílem simulace je nalézt nastavení takové nastavení parametrů, které odpovídá optimálnímu rozvržení financí vůči počtu dní na čištění ropné skvrny. A to za předpokladu větší či menší ropné havárie.
Malá katastrofa
Zde budou testovány události menších ropných skvrn s nasazením nižšího počtu záchranářských lodí. Ponorka bude umisťována náhodně, i když její umístění může uživatel nastavit ručně. Zpráva bude konstruována s 20 spuštěními se shodně nastavenými parametry, které budou zobrazeny níže. Kombinace všech nastavovaných parametrů s počtem spuštění všech z nich tedy vydá na 20 simulací. Z nich je vytvořena výsledná zpráva.
Nastavené parametry pro malé katastrofy
- rychlost_rozptylu_skvrny 25
- lode_se_vraci_do_pristavu true
- min_naklad 1600
- max_naklad 2170
- rychlost_ponorky 30
- rychlost_uniku_ropy 4
- prijatelne_naklady 365000
- pocatecni_velikosti_skvrny_polomer 5
- pocet_lodi 20 / 30
Velká katastrofa
Tyto typy olejových skvrn by měly být modelem těch nejhorších katastrof, které jsou zaznamenány ve statistice Zde. Nepůjde o kopie událostí, nýbrž o náhodné enormní havárie, na kterých se také bude podílet více záchranářských lodí. Zpráva bude konstruována s 20 spuštěními se shodně nastavenými parametry, které budou zobrazeny níže. Kombinace všech nastavovaných parametrů s počtem spuštění všech z nich vydá na XXX simulací. Z nich je vytvořena výsledná zpráva.
Nastavené parametry pro velké katastrofy
- rychlost_ponorky 30
- rychlost_rozptylu_skvrny 25
- rychlost_uniku_ropy 30
- prijatelne_naklady 6650000
- min_naklad 1600
- max_naklad 2170
- pocatecni_velikosti_skvrny_polomer 20
- pocet_lodi 60 / 80
- lode_se_vraci_do_pristavu true
Výsledky
Z důvodů přílišné složitosti zde nebudou navázány výdaje za celou akci, nýbrž zde bude uvedena úměry mezi počtem nasazených lodí a časem odstraňování skvrn. Na ose x je vyznačena doba v hodinách, po kterou lodě aktivně vyčistili moře. Osa y zobrazuje množství tun ropy, které bylo vylito do oceánu.
Výsledky malé katastrofy
Pro 20 lodí je výsledek následující (znázorněn graficky) je dostupný zde: File:20 lodi x.xlsx
Pro 30 lodí se stejnými parametry vypadá graf takto. Tabulkový formát je dostupný zde: File:30 lodix.xlsx
Na obou grafech lze vidět rovnoměné rozdělení zapojení 20 a 30 lodí do odčerpávání, přičemž rozdíl 10 lodí nehraje ve výsledku žádnou roli. Rozdíl nejdelších akcí je 14,1 hodiny a proto je lepší nasadit méně lodí (20).
Výsledky velké katastrofy
Pro 60 lodí je výsledek kolísavý. Tabulkový formát je dostupmný zde:
Závěr
Tyto výsledná zpráva měla za úkol vytvořit model reality při odsávání ropných skvrn v oceánech. Přínosem simulace je ale hlavně naučit se vytvářet vhodné modely a následně scénáře by tato simulace měla smysl. I přes výše uvedené výsledky však není zaručeno, že model, který realitu velice vágně popisuje bude fungovat v praxi. Vzhledem k malým zkušenostem s modelováním simulací bych doporučoval brát tyto výsledky s rezervou, ačkoliv nalézt optimální řešení vydalo na několik dní práce. Pokud by čtenáře simulace zaujala, uvítám zpětnou vazbu.
O rozvoji aplikace
Kód, který je zde ke stažení, je volně šiřitelný k použití či k úpravě. Mezi plánovaný rozvoj by mohla být simulace rozšířena o dobu čerpání ropy. Dále by bylo vhodné umožnit umístění havárie i břehu ručně podobně, jako je tomu u ponorky. Do simulace by mohly vcházet další jevy jako například nepřízeň počasí, poruchy lodí, trvalé zásahy do přírody a jiné.
Kód
File:Xmolm00 ropna skvrna.nlogo