Diagram stavů a toků (Stock and Flow Diagram, SFD) je společně s diagramem kauzálních smyček (Causal Loop Diagram, CLD), jedním z přístupů, jak popsat dynamické chování systému. Oba typy diagramů přestavují hlavní východisko konceptu systémově dynamické teorie. Diagramy stavů a toků na rozdíl od diagramů kauzálních smyček nezachycují jen pozitivitu a negativitu vazeb, ale zavádí zcela nové prvky – stavy a toky. To umožňuje reprezentovat strukturu systému s podrobnějšími informacemi, a tím eliminovat interpretační problémy, které mohou vznikat u diagramů kauzálních smyček.[1] V simulačních nástrojích, jako je Vensim nebo Powersim je – po doplnění parametrů jednotlivých prvků diagramu stavů a toků – možné spouštět simulace.
Prvky diagramu stavů a toků
Grafická notace jednotlivých prvků diagramu stavů a toků souvisí s tím, v jakém nástroji je tento diagram modelován. Symbolika diagramu stavů a toků je sice obecná, prvky modelu se ovšem drobně liší dle simulačního softwarového nástroje. Jedním z takových simulačních nástrojů je Vensim. Následující grafické prvky jsou zachyceny právě z tohoto nástroje.
Stav
Stav (případně hladina, akumulace, úroveň, stavová veličina) je akumulací změn za časovou jednotku, uchovává v sobě informace.[1][2] Stavy rozdělujeme na:
hmatatelné (fyzické) hladiny
jedná se například o množství zásob na skladě, množství peněz na účtu
nehmatatelné hladiny
jedná se například o spokojenost zákazníků, kvalita produktu
Využívání stavů má za důsledek tyto přínosy:
udávají stav systému a vytváří podněty pro akce
na základě informací o množství zboží na skladě je možné rozhodnout o nákupu dalších surovin
zachycují minulé stavy, poskytují systémům setrvačnost a paměť
umožňuje vytvářet nerovnovážnou dynamiku
pokud by se jednalo o rovnovážný stav, přítoky do hladiny by se rovnaly jejím odtokům, toto by způsobovalo, že bychom například nedokázali zachytit kumulaci zboží na skladě
jsou v systému zdrojem zpoždění
naskladnění zboží může trvat určitou dobu, až po uplynutí této doby je možné zboží ze skladu odebírat
Tok
Tok (případně míra) mění hodnoty stavů v čase. Jedná se o proces, který stav napouští nebo jej vypouští. Typicky si lze tok představit na příkladu napouštění vody do vany. Tokem je v tomto případě voda, která v daném čase proudí kohoutem do vany a dále také voda, která v daném čase z vany odtéká. Stavem je množství vody ve vaně. Abychom dokázali správně odlišit, která proměnná je stavem a která tokem, je třeba [2]
Jedná se o pomocnou informaci, případně konstantu. Proměnné ovlivňují pouze toky nebo jiné proměnné, zároveň nemusí žádné jiné prvky diagramu – případ konstanty.
Mrak
Mrak znázorňuje hranice modelu. Znázorňuje zdroj a ukončení toků – má nekonečnou kapacitu
Spoj
Spojem mohou být propojeny různé prvky modelu. Tvoří tak vazby mezi proměnnými, stavy a toky. Informace putují po spojích ve směru šipky. Rozlišujeme celkem 3 typy spojů:
Informační – přenáší informaci v rámci proměnných, takto propojené proměnné se okamžitě mění
Iniciační – jedná se o spoj, který se používá k určení iniciální hodnoty hladiny
Zpožďovací – užívá se k reprezentaci zpožděného přenosu informací
Ilustrační modely
Ilustrační modely ukazují praktičtější užití výše zmíněných prvků z diagramů stavů a toků.[1]
Hladina, tok, spoj
Model reprezentuje příkladové propojení toku, jakožto základního stavebního bloku modelu, který následně ovlivňuje hladinu. Tok je nastaven pomocí toku připojené proměnné míra toku. Mrak znázorňuje hraniční bod modelu – v tomto případě přítok, který teče do hladiny.
Přítok a odtok
Jedná se o již zmíněný příklad s napouštěním vody do vany.
Akumulace
Model ukazuje jednoduchý příklad akumulace peněz na bankovním účtu. Úrok způsobuje přítok peněz na účet, ty se na tomto místě akumulují. Čím více je na účtu peněz, tím vyšší je úrok. Snížení úroku nevede k snížení peněz na účtu, ovšem pouze k pomalejšímu růstu peněz na účtu.
Cílový stav
Jedná se o příklad ukazující proces zvyšování kvality ve výrobě. Jako konstanta je zadána potřebná kvalita, ke které výroba směřuje. Jinými slovy je zadána cílová hodnota, ke které proces směřuje.
Eskalace
Eskalace konfliktu je případ, kdy je model svým způsobem zacyklený, a to takovým způsobem, že zvýšení, popř. snížení hodnoty hladiny má za následek odpovídající pohyb do hladiny vcházejícího toku, a to v opačném směru. Rozlišujeme pozitivní a negativní eskalaci. Níže je uveden příklad negativní eskalace, kdy zvyšující se počet hypermarketů na území snižuje atraktivitu výstavby, v závislosti na snižující se atraktivitě výstavby se snižuje míra výstavby nových hypermarketů.
Oscilace
V procesu řízení zásob nastávají skutečnosti, které se nazývají oscilací. Na níže uvedeném diagramu je uveden právě proces řízení zásob, ve kterém se na základě proměnné rozdíl najímá požadovaný počet zaměstnanců, kteří budou schopni za požadovanou dobu adaptace skladu vyrobit zásoby. Přijetí nových zaměstnanců však může být časově náročné – to představuje proměnná doba náboru. Čím více zaměstnanců je přijato, tím větší bude čistá změna zásob a sklad bude doplňován rychleji. To způsobí, že s přibývajícím počtem zásob bude potřeba opět méně požadovaných zaměstnanců. To způsobí pomalejší plnění hladiny zaměstnanci.
Kdy užít diagram stavů a toků
Následující tabulka pomocí operátorů + a − uvádí, kdy je vhodné využít diagramu kauzálních smyček a kdy diagramu stavů a toků.[1]
Kritérium
Diagram stavů a toků
Diagram kauzálních smyček
Jednoduchost vytvoření
−
+
Původní přesnost modelářovy představy o struktuře systému
+
−
Detailnost popisu
+
−
Snadnost pochopení
−
+
Z tabulky vyplývá, že diagram stavů a toků je sice složitější na tvorbu, ale s jeho pomocí lze vytvořit mnohem přesnější a detailnější model. V podstatě je možné při popisu dynamického chování systému začít u diagramu kauzálních smyček a následně tento diagram použít jako vstup pro diagram stavů a toků.
Pří převodu diagramu kauzálních smyček na diagram stavů a toků je třeba správně určit jednotlivé prvky diagramu stavů a toků (stav, tok, proměnné), určit hranice modelu (kam umístit mraky) a následně určit parametry modelu (vzorce a hodnoty).
Simulace v nástroji Vensim
Diagramy stavů a toků je, po doplnění parametrů (vzorců a hodnot) jednotlivých prvků modelu možné v nástroji Vensim simulovat. Příklad je demonstrován na diagramu životního cyklu, jehož diagram stavů a toků je možné vidět na obrázku:[2]
Diagram životního cyklu znázorňuje, že míra porodnosti ovlivňuje porodnost, na základě jejíž změny je ovlivňována populace. Ta má však sama o sobě vliv na porodnost, jelikož čím menší populace bude, tím můžeme očekávat menší porodnost. Čím vyšší bude populace, tím vyšší bude i úmrtnost. Na tu má ovšem vliv ještě průměrná délka života. Abychom mohli spustit diagram jako simulaci, je potřeba jej doplnit o parametry, tedy vzorce a hodnoty. Ty budou v případě naší simulace vypadat následovně:
Populace = porodnost – úmrtnost, iniciální hodnota populace 10000
porodnost = míra porodnosti * Populace
míra porodnosti = 0.05
úmrtnost = Populace / průměrná délka života
průměrná délka života = 15
Po doplnění těchto údajů do jednotlivých prvků diagramu je možné simulaci spustit. Po spuštění vypadá diagram následovně:
Je možné si všimnout, že do detailu stavů a toků přibyly křivky. Při zobrazení detailu stavu populace se zobrazí následující klesající křivka:
Ta ukazuje, že při zadaných hodnotách proměnných bude populace postupem času klesat, až úplně vyhyne. Pokud bychom při stejné míře porodnosti změnili průměrnou délku života na 50 let, graf by vypadal následovně:
V případě, že je průměrná délka života 50 let se jedná o opačný extrém, lidé se budou rodit ve větším počtu než budou umírat a to ve finále povede k přelidnění.