SD: Atvejis 1(III) – 1979 metų benzino trūkumo priežastys JAV

Šis straipsnis yra trečia dalis sistemų dinamikos atvejo. Čia pateiksiu naujai suprogramuotą modelį Insight Maker įrankyje ir aptarsiu modelio pateikiamus rezultatus.

Modeliui paruošiau istoriją. Ji pasileis atsidarius modelį naujame lange.
Modelis naujame lange.

Pirma atvejo dalis
Antra atvejo dalis

SD: Atvejis 1(II) – 1979 metų benzino trūkumo priežastys JAV

Pradžia 

Šiame įraše tęsiu praktinio sistemų dinamikos taikymo atvejo aprašymą. Pirmame šio atvejo įraše suformulavau situaciją ir uždaviau klausimus, kuriuos turėtų padėti (jei gali) atsakyti sistemų dinamikos modelio sudarymas ir situacijos imitavimas.

Viena iš pagrindinių sėkmingo modelio sukūrimo sąlygų –  modelio kūrimas problemai spręsti, o ne modelio kūrimas, kad sukurti sistemos modelį. Kiekviena problema egzistuoja tam tikrame kontekste. Pirmiausia reikia apsibrėžti modelio ribas, t.y. kokie problemos elementai bus modeliuojami, kas nebus įtraukta. Vykstant modeliavimui šios ribos gali kisti, bet svarbu, kad būtų aiški priežastis, kodėl ribos praplečiamos, siaurinamos.

Į modelį planuoju įtraukti, nustatau šias prielaidas:

  • Modelyje atvaizduosiu degalų paskirstymo sistemą, fokusuojantis į mažmeninio pardavimo dalį, t.y. kuro tiekimas į degalines, saugojimas, pardavimai, vartojimas. Degalų gamybos ir didmeninio transportavimo nenagrinėsiu.
  • Pradinėje situacijoje visa sistema bus balanso būsenoje, todėl ne tiek svarbu tikslus faktinių reikšmių atvaizdavimas, kaip suformavimas balansuotos sistemos. Visa sistema bus pusiausvyros būsenoje, t.y. vartojimas, pardavimai, tiekimas yra stabilūs.
  • Tiekimas į degalines yra stabilus ir susiformavęs. Tarkime visos tiekimo galimybės išnaudojamos optimaliai – 100%. Tiekimo pajėgumai gali būti padidinti ir sumažinti kas mėnesį.
  • Atvaizduosiu degalų trūkumo žinios plitimą tarp vairuotojų.
  • Modeliavimo periodas bus 30 dienų (mėnuo). Mažiausias laiko žingsnis 1 diena.
  • Įvesiu kontrolės elementus, kurie inicijuos žinios apie galimą trūkumą sklidimą  ir pardavimo ribojimo strategijas.
  • Kaina modelyje neturės įtakos. Staigų kainos kilimą, atspindės žinios apie galimą trūkumą įvedimas.

Tai būtų pagrindinės apsvarstytos ribos ir prielaidos. Modelio kūrimo metu gali iškilti papildomų apribojimų poreikis, juos paminėsiu aprašymo metu. Žymėsiu specialiu simboliu –  RP.

Yra daug būdų konstruoti modelį. Aš tai darysiu pasirinkdamas pažingsninio plėtimo/tikrinimo būdą. Kiekviename žingsnyje prie modelio pridėsiu po konceptą/elementą ir po to atliksiu imitavimą.

Taigi, pradedu.

—————————————————————-

Vienas pagrindinių pasirinktos situacijos elementų yra degalinės. Jų pagrindinė paskirtis yra skirstyti/parduoti kurą – priimti kurą iš didmenininkų ir parduoti degalinių pirkėjams. Taigi šią grandį sudaro – tiekimas, sandėliavimas ir pardavimas:

Parduotas kuras patenka į automobilių bakus.

Kuras automobilių įprastai būna, sudeginamas varikliuose, taigi

Sudeginto kuro kiekis priklauso nuo to kiek rinkoje yra automobilių, kiek tie automobiliai nuvažiuoja ir koks automobilių efektyvumas. Siekdamas paprastumo, modelyje naudosiu vidutinius dydžius.
RP. Tarkim, kad vidutiniškai viename automobilyje telpa apie 50 litrų kuro, o rinkoje yra 1 milijonas automobilių. Laikysime, kad vienas automobilis turi vieną vairuotoją. Žinome, kad sudegintas kuras priklauso nuo automobilio ir nuvažiuoto atstumo, kad būtų paprasčiau tarsime, kad vidutiniškas automobilis išvažinėja savo pilną baką per 10 dienų, taigi per dieną jis sudegina 1/10 bako, t.y. 5 litrus. Tai, gauname, kad per dieną yra sudeginama 5 mln. litrų kuro. Dėl egzistuojančio sisteminio balanso, tiek pradinės atsargos degalinėse, tiek pradinės atsargos automobilių bakuose sudaro pusę nuo maksimalios galimos talpos. Kuras automobilių bakuose – 25 mln. litrų. O degalinės laiko kuro su rezervu dviem dienom – t.y. 15 mln. litrų.

Dabar apie kuro pardavimus. Sakykime, kad žmonės pilasi kurą, kai bakas būna tuščias ir pilantys kurą yra tolygiai pasiskirstę. Taigi per diena degalinėse parduodama 5 mln. litrai kuro. Sistema yra balanse, taigi ir tiekimas į degalines bus 5 mln. litrų per dieną.

Šias prielaidas ir skaičius suvedus į sistemą ir “prasukus” įmitavimą sistema turi būti balanse. Grafikai tą ir rodo:

Dabar įvesiu modelio pakitimus, kurių tikslas atvaizduoti situaciją, kai rinkoje pasklinda žinia apie galimus kuro pabrangimus ar tiekimo sutrikimus.

RP. Modeliuojama situacija bus tokia. Vairuotojai, kurie sužino apie galimą trūkumą, pradeda važiuoti į degalines kiekvieną dieną ir pilasi pilnus bakus, net jei ir nuvažiavo tik kelis kilometrus.

Į modelį įvedame talpą, kuri atspindės skaičių vairuotojų, kurie žino apie tiekimo sistemos sutrikimus. Srautas į talpą, bus skaičius vairuotojų, kurie tą dieną sužinojo apie problemas. Faktiškai žmonės gali sužinoti apie problemas iš žiniasklaidos ir kitų vairuotojų. Pradžioje įmituosime situaciją, kai vairuotojai sužino apie problemas tik iš masinio informavimo priemonių. Tarsime, kad masinės informavimo priemonės kiekvieną dieną pasiekia 65% procentus vairuotojų, kurie nežino apie problemas. Prie modelio pridedu tokį bloką:

Čia:

Viso vairuotojų rinkoje = 1 mln

Žiniasklaidos pasiekimas = 0.65

Naujai sužinoję vairuotojai = (Viso vairuotojų rinkoje – Žinantys vairuotojai) * Žiniasklaidos pasiekimas

Žinantys vairuotojai (t+1) = Žinantys vairuotojai (t) + Naujai sužinoję vairuotojai (t+1)

Paleidus įmitavimą, gaunane tokią šio bloko dinamiką.

Po šešių dienų nuo žinutės paskelbimo beveik visi vairuotojai jau žino apie problemas.

Dabar reikia į modelį įvesti, kaip elgiasi vairuotojai, kurie sužino apie galimas problemas. Anksčiau apibrėžėme, kad sužinoję, jie pradeda piltis pilną balą kiekvieną dieną, vietoje to kad piltųsi, kai bakas ištuštėja. Kadangi sistema yra balanse, tai 100% vairuotojų sužinojus apie galimas problemas, maksimaliai jie gali prisipilti tik tiek kiek dar tilptų į bakus, t.y. 25 mln litrų. Taigi, papildomą kuro prisipilimą ir skaičiuosime nuo šios sumos. Jei 50% vairuotojų sužino apie kuro trūkumą, tai pirmą dieną jie prisipiltų 25*50%/100=12.5 mln litrų kuro. Kitas dienas jie piltų, kiek išvažinėtų.

Pirmas rekomenduotinas žingsnis yra nustatyti kokios talpos (kaupiantys elementai) yra pagrindinės (apie tai kas yra talpa čia):

  • Kuro atsargos degalinėse
  • Kuro atsargos automobilių bakuose

 

Tai būtų pagrindinės talpos. Dabar šias talpas įtakojantys srautai:

  • Degalinių atsargos papildomos kas tam tikrą laiką atvežant kuro, tai būtų “Kuro atsargų degalinėse” (KAD) pritekėjimas. Pardavimai vairuotojams būtų šios talpos ištekėjimas.
  • Talpa “Vidutinis kuro lygis automobilių bake” (VKLAB). Pritekėjimas – pirkimai iš degalinių. Ištekėjimas – kuro sudeginimas mašinų varikliuose.
  • Talpa “Sunerimę vairuotojai” (SV). Pritekėjimas – nauji vairuotojai per dieną sužinoję apie apie galimą trūkumą. Ištekėjimo neformuluojame, nors faktiškai gali egzistuoti nusiraminę vairuotojai.

Po srautų įvedimo.

Pagrindinis mūsų tikslas yra suformuoti tokį modelį, kad jis būtų pusiausvyroje. Norint įvertinti dinaminių pokyčių priežastis nėra būtina tiksliai atkartoti faktinę situaciją realybėje, bet svarbu apibrėžti pagrindinius sistemos elementus ir sąryšius tarp jų. Mums svarbu suprasti kaip pakitusios sistemos sąlygos keičia balansą sistemoje, faktiniai skaičiai šiuo atveju nėra ypatingai reikšmingi. Beje, suformavus modelį ir turint visą reikiamą informaciją, nesudėtinga pakoreguoti modelį, kad jis dirbtų su realiais skaičiais.

Nustatysiu likusius kintamuosius ir reikšmes. Verta pradėti nuo bendro mašinų skaičiaus rinkoje, jis apibrėžia kiek yra vairuotojų. Tarkime, kad mums rūpi tik individualių transporto priemonių skaičius. Jų Lietuvoje yra registruota apie 1100 tūkst. (2011). Kad būtų apvalesnė suma, tarkime jų yra 1 mln. Paprastumo dėlei manykime, kad vieną mašiną vairuoja vienas žmogus. Taigi turime 1 milijoną vairuotojų.

Vairuotojų skaičius = 1 000 000 vairuotojų

Vidutinis bako dydis nurodys, koks yra kiek vidutiniškai litrų telpa viename bake.

Vidutinė bako talpa = 50 litrų

Sunaudotas kuras per dieną.

Sunaudotas kuras = Vairuotojų skaičius x (Vidutinė bako talpa / Bako dienų skaičius)

Tarkime, kad vidutiniškai vienas vairuotojas 50 litrų sunaudoja per 15 dienų. Taigi šiuo atveju Bako dienų skaičius bus 15 dienų. Tada per dieną bus sunaudojama 1 000 000 x (50 / 15 ) ~ 3,3 mln litrų.

Kadangi darome prielaidą, kad mūsų sistemoje pradžioje yra pusiausvyra, taigi “Tiekimas” į degalines bus lygus parduoto, t.y. sunaudoto kuro kiekiui.

Tiekimas = Sunaudotas kuras

Tarkime maksimali degalinių atsargų talpa yra lygi visų automobilių bakų talpai. T.y. 50 mln litrų.

Kuro atsargos degalinėse (t+1) = Kuro atsargos degalinėse(t) – Pardavimai(t+1) + Tiekimas(t+1)

Vidutinis kuro lygis automobilių bake (t+1) = Vidutinis kuro lygis automobilių bake (t)+Pardavimai(t+1) – Sunaudotas kuras(t+1)

Tarkime, kad pradinis kuro kiekis bakuose yra lygus vidutinei bako talpai = 50 l.

Pardavimai = Sunaudotas kuras

Taigi turi sistemą, kurioje turi būti pusiausvyra.

Pabaigtas modelis struktūriškai atrodo šitaip:

Modelio analizė nėra labai patogi su Vensim, nes esu pratęs prie kitokių įrankių.
Nusprendžiau modelį įgyvendinti InsightMaker sistemoje, kuri yra visiškai nemokama ir paskutiniu metu ypatingai vystoma. Ji turi vieną labai patogų įrankį – istorijos režimą.

Suprantu, kad mano aprašymas yra chaotiškas, bet aš tam ir rašau, kad išmokčiau.
Taigi, rezultatus panagrinėsiu III šio ciklo dalyje ir tikiuosi anksčiau nei po pusės metų 🙂