# **Popis algoritmu** --- ## 1. Verze dokumentu | Verze | Datum | Autor | Komentář | | ----- | -------- | ------------ | ----------------------- | | 0.1 | 2.3.2025 | Filip Kohout | První šablona dokumentu | ## 2. Obsah - [**Popis algoritmu**](#popis-algoritmu) - [1. Verze dokumentu](#1-verze-dokumentu) - [2. Obsah](#2-obsah) - [3.Algoritmus simulace](#3algoritmus-simulace) - [3.1 Inicializace](#31-inicializace) - [3.2 Simulace](#32-simulace) - [3.3 Optimalizace](#33-optimalizace) - [3.4 Vyhodnocení](#34-vyhodnocení) - [4. Struktura](#4-struktura) ## 3.Algoritmus simulace ### 3.1 Inicializace - Nastaví se celkový počet zákazníků na **250**. - Rozdělí se do jednotlivých hodin dle procentuálního podílu. - Každému zákazníkovi se přiřadí náhodný čas příchodu (**1**-**60**) a doba odbavení (5-15 minut) pomocí pseudonáhodného generátoru Random. ### 3.2 Simulace - Banka otevírá každou hodinu určitý počet přepážek, (není stanoven maximální počet přepážek, takže v kodu uvažuji možnost neomezeného počtu přepážek (nebo stanovení maximálního počtu přepážek ve vstupních parametrech třídy)). - Proběhne simulace pro jednotlivé hodiny během dne s různými počty otevřených přepážek ale stejnými náhodně vygenerovanými příchody zákazníků. - Pokud jsou všechny přepážky obsazené, další zákazníci čekají ve frontě. ### 3.3 Optimalizace - Pro každou iteraci se sleduje aktuální stav fronty a vypočítá se čekací doba jednotlivých zákazníků. - Pokud je čekací doba delší než maximální přípustná, zákazník odchází nespokojen. - Celkový počet spokojených zákazníků se převede na relativní podíl (**0**-**1**). - Vybere se nejmenší počet přepážek s největší spokojeností. > [!IMPORTANT] > V případě že zákazník přijde ke konci simulační hodiny a doba jeho obsluhy i čekání by přesáhla 60 minut hodiny, pro zjednodušení, poběží program přes čas dokud zákazníka/y neobslouží. ### 3.4 Vyhodnocení - Nejlepší počet přepážek v každé hodině se uloží do výstupu. - Generuje se souhrnná zpráva o efektivitě provozu a procentu spokojených zákazníků. ## 4. Struktura ![Code Structure](./MonteCarlo.png)