Vydavatelství slovníků

From Simulace.info
Jump to: navigation, search

"Něco lingvistického."


Definice problému

Bude simulována firma, která se zabývá tvorbou a prodejem překladových slovníků, kde na 1 straně je čeština. Postupně buduje svoje portfolio produktů na základě toho, jak rychle zpracovává slovníková hesla pro vydání potřebné velikosti slovníku, a na základě poptávky ovlivněné geopolitickými událostmi vydává nová vydání. Jejím cílem je mít konsistentní zpracování všech předem vytyčených jazyků s pomocí počítačových technologií, a zacelit tak všechny díry na trhu českých překladových slovníků, jejichž zpracování nebylo v minulých režimech možné z politických či technických důvodů. Noví zaměstnanci (zvyšující rychlost zpracování hesel) jsou z důvodu stability týmového prostředí nabíráni jen v případě zvýšené poptávky (prozatím náhodně). Simulace je inspirována příhodným vydáním ukrajinského slovníčku od firmy Lingea z pekuliárního roku 2022, a ukrajinské konverzace z roku 2023.

Cíl simulace

Hlavním cílem je prověřit dlouhodobou (20+ let) rentabilitu a ziskovost v obnoveném volnotržním prostředí, obzvláště v pozdních fázích, kdy slovníky většiny jazyků budou zpracovány do velké velikosti (100000+ hesel), ačkoliv poptávka po nich bude lehce klesat.

Zdroje dat

Data budou získána či spíše odvozena z výročních zpráv Lingea s.r.o. v Obchodním rejstříku, nebot používají zkrácený rozsah a nemají povinnost ověření auditorem. Důležitým zdrojem je také produktové portfolio této firmy, které určí jednotlivé druhy slovníků. Doplněny jsou také formáty největších českých slovníků, kterou používají jako základ pro část s češtinou napřed.

Ohledně dějepisných událostí se simulace se inspiruje v celkové pravděpodobnosti válek, ale nebude natvrdo zakódováno, že USA má v roce 2003 napadnout Irák, Rusko má v roce 2008 napadnout Gruzii, nebo že se má v roce 2011 stát arabské jaro. Bude ale ctěno, že státy NATO nikdy nejsou napadány.

Rychlost zpracování slovníkových hesel je odvozena z průměrné rychlosti psaní. Zaměstnanci jsou považovaní za experty na svůj jazyk, tudíž nejsou ve zpracování hesel omezení potřebou o nich dlouze přemýšlet.


Metoda

Formulování a zpracování tématu je inspirováno soutěžními zadáními z FMWC. V základu simulované části reality je použito Monte Carlo, na rozhodovací úrovni jsou použity prvky Dračího doupěte. Prozatímní název pro tuto kombinaci je Šmakova hora. Narozdíl od Monte Carla není a priori cílem konvergence výsledků.

Počet kol je 50 po 1 roce, počínaje rokem 2001. V každém kole je 12 tahů odpovídajícím 1 měsíci.

Použitý program je LibreOffice Calc, neboť umožňuje defici vlastních funkcí imperativně přímo v LibreOffice Basic, namísto méně pohodlného funkcionálního psaní lambd ve správci jmen v M$ Excel 365, přičemž v nejnovější stabilní verzi 2021 lambdy nejsou podporovány.

Samotná simulace je postavena na sledování a aktualizaci stavových proměnných pomocí následovnické funkce s podmíněným rozhodnutím, zda se jedná o konec roku.


Model

V LibreOffice byla simulace rozdělená do 4 různých listů:

  • Počáteční - konfigurace simulace
  • Slovníky - data druhů slovníků
  • Jazyky - konfigurace proměnných na každý jazyk
  • Simulace - samotná simulace


Počáteční proměnné

  • Peníze = 1000000 Kč
  • sílaZamE = 1000 hesel/měsíc (normální)
  • sílaZamSigma = 500 hesel (variace přínosu pro kolektiv)
  • výchylnostZam = 100 hesel (momentální variace zpracovaných slov)
  • mzda = 20000 Kč (k roku 2000)
  • početJazyků = 20
  • početNonPaxAm = 13
  • pstVálka = 0,1 (každý měsíc)
  • poptFaktAgresor = 5
  • poptFaktNapaden = 10
  • velikostTrhu = 20000000 lidí
  • inflaceCíl = 1,02 (lognormální)
  • inflaceSigma = 0,2
  • globPoptFakt = 0,001
  • poptSigma = 1000 lidí
  • cenaDB = 0,1 Kč/heslo
  • nákladyA4 = 0,1 Kč/list


Slovníky

Simulovaná firma chce vydávat 12 (dodekahedron) druhů slovníků. Nejsou uvažováni průvodci a gramatiky.

  • konverzace - 6k, obsahuje krátký slovníček a relativně fixní seznam frází.
  • slovníček - 30k
  • kapesní - 35k, obsahuje stručnou konverzaci
  • šikovný - 40k, obsahuje konverzaci
  • praktický - 50k
  • úzký velký - 60k, pozorováno u čínštiny a japonštiny
  • tlustý velký - 120k, pozorováno u angličtiny a němčiny
  • vícesvazkový - 250k, podle PSJČ a SSJČ
  • mega - 1M,
  • mluvník - 2k, potřeba 100k
  • tematický - 20k, potřeba 100k
  • slang - 5k, potřeba 100k, jedná se o podmnožinu


Jazyky

Bylo vybráno 20 (ikosahedron) jazyků s nejvyšším počtem mluvčích podle Ethnologue. Portfolio Lingey zahrnuje místo některých jihoasijských jazyků jazyky evropských států, nicméně pro řadu jihoasijských jazků velký slovník s češtinou na 2. straně nevyšel, tudíž se jedná o tržní příležitost.

  • angličtina
  • čínština
  • hindština
  • španělština
  • francouzština
  • arabština - v dosavadních slovnících řazeno zpravidla podle kořenu
  • bengálština
  • ruština
  • portugalština
  • urdu
  • indonéština
  • němčina
  • japonština
  • marathi
  • telugu
  • turečtina
  • tamilština
  • vietnamština
  • filipínština (tagalog)
  • korejština


Proměnné na každý jazyk

  • Poptávka
  • Počet zaměstnanců
  • Síla kolektivu (hesel za měsíc)
  • Počty každého z 12 druhů slovníku


Proměnné zvlášť

  • Rok
  • Měsíc
  • Peníze
  • Mzda
  • jeVálka
  • agresorIdx - vygenerované
  • agresor - dereferencované jméno
  • napadenýIdx - vygenerované
  • napadený - dereferencované jméno


Výsledky

Na začátku je patrná potřeba zadlužení na prvotní várky konverzací, potom má ale firma více než dostatek peněz na případné reinvestice, a dokonce přibývají.

Nebýt nemilosrdného vyhození všech zaměstnanců kromě jednoho po dosažení milionu slov v daném jazce (někdy zbyde ten, který zvládne slova přidávat), projekt by přestal být komerčně rentabilní, neboť po uspokojení většiny poptávky, kterážto je v této simulaci omezená, se nevyplatí dále provozovat celou firmu. I u jazyků, kde se začíná s nejmenším počtem zaměstnanců, se tak stane do 15 let. To je méně než 1 generace, narozdíl od doby, kterou trvalo ručně dokončit vícesvazkové slovníky v minulém století.


Závěr

Vzhledem k příliš striktní deadline nemohla být simulace zcela implementována pro všechny velikosti slovníků s ohledem na proměňující se bias poptávky. Deterministické rozřazování, kolik čeho vytisknout, by trvalo implementovat další měsíc. V souvislosti s celkovým počtem polí (cca 600 řádků a 300 sloupců) se rovněž vyskytly obavy o načítání símulace na strojích, které nedosahují výkonových kvalit autorova počítače.


Odkazy


Kód

File:Vydavatelstvi slovniku.ods Soubor simulace na Google Disku

Simulace postupuje na základě následovnických funkcí, které jsou uvedeny v tabulce níže. Pro účely tohoto článku byly poněkud kryptické identifikátory polí nahrazeny symbolickými jmény s indexujícími subskripty.


Následovnické funkce
Proměnná Kód funkce Komentář
Rok rok[i-1]+IF(měsíc[i]=1;1;0) Rok se zvedá každých 12 měsíců
Měsíc MOD(měsíc[i-1];12)+1 Měsíce jsou číslované od 1
Peníze peníze[i-1]-SUM(Zaměstnanci[i])*mzda[i-1]-MIN(0;(konverzací[i]-konverzací[i-1]))*(konst[konverzace]+var[konverzace]*potřebaHesel[konverzace])+MIN(0;(konverzací[i-1]-konverzací[i]))*cena[konverzace] atd. pro všechny druhy
jeVálka IF(RANDBETWEEN(0;1/pstVálka)=0;1;0) Tradiční hod 1/pstVálka-strannou kostkou
agresorIdx IF(jeVálka=1;RANDBETWEEN(0;početJazyků);"-") Další hod početJazyků-strannou kostkou
agresor IF(agresorIdx="-";"-";IF(agresorIdx=0;"jiný";VLOOKUP(agresorIdx;Jazyky;3;FALSE()))) Dereference pro kontrolu
napadenýIdx IF(jeVálka=1;RANDBETWEEN(0;početNonPaxAm);"-") Státy NATO nikdy nejsou napadeny
napadený IF(napadenýIdx="-";"-";IF(napadenýIdx=0;"jiný";VLOOKUP(napadenýIdx;Jazyky.nonPaxAmIdx;2;FALSE()))) Dereference pro kontrolu
Slov Slov[k][i-1]+KolektivSíla[k][i-1]+ROUND(NORM.INV(RAND();0;Zaměstnanci[k][i]*výchylnostZam)) x20 pro každý jazyk k
Zaměstnanci IF(měsíc[i]=1;IF(slov[k][i-1]<Slovníky[potřebaHesel][mega];Zaměstnanci[k][i-1]+RANDBETWEEN(0;1);sílaZamE);Zaměstnanci[k][i-1]) x20 pro každý jazyk k
KolektivSíla =MAX(0;kolektivSíla[k][i-1]+(Zaměstnanci[k][i]-Zaměstnanci[k][i-1])*ROUND(NORM.INV(RAND();sílaZamE;sílaZamSigma);0)) x20 pro každý jazyk k
Poptávka =MAX(0;Poptávka[k][i-1]+ROUND(NORM.INV(RAND();(IF(agresorIdx[i]=k;poptFaktAgresor;1)*IF(napadenýIdx[i]=k;poptFaktNapaden;1))*(poptSigma+globPoptFakt*VLOOKUP(k;Jazyky;5;FALSE()));poptSigma);0)-Konverzací[k][i-1]) x20 pro každý jazyk k, atd. pro všechny druhy
Konverzací ... Slangů =IF(Slov[k][i-1]>Slovníky[potřebaHesel][konverzace];MAX(Poptávka[k][i-1];CM4);Konverzací[k][i-1])-MIN(Poptávka[k][i-1];Konverzací[k][i-1]) x20 pro každý jazyk k, atd. pro každý druh slovníku