Mapování jazyka - Simulace geneze a evoluce

From Simulace.info
Jump to: navigation, search

Základní informace

Autor: Miroslav Valeš (xvalm48)
Typ: Multi-agentní simulace
Platforma: C#, .NET 4.5
Souhrnný výstupní článek: [[1]]
Aplikace a zdrojový kód: [[2]]

Závěrečná zpráva

Zadání

Model se v oblastech lingvistiky a fonologie věnuje simulaci geneze a evoluce jazyka, coby reprezentačního prostředku, ve kterém základní jednotka (písmeno, slabika, slovo) odkazuje na konkrétní význam. Různorodí agenti tyto jednotky používají v komunikaci, přičemž jejich užívání jazyka zapřičiňuje postupnou evoluci jazyka. Model by měl poskytnout odpověď, zda-li jazyk (jazykový slovník) s trvanlivými výrazy může emergovat pouze na základě chování mnoha deliberativních agentů. Zvláštní pozornost bude věnována vlivu endogenních parametrů, jako jsou omezení minimální a maximální délky výrazu, prahu podobnosti nebo vliv nastavení agentů na vytvářený jazyk.
(... detail zadání je dostupný http://www.simulace.info/index.php/Xvalm48)

Průběh vývoje

Oproti původnímu záměru bylo přistoupeno k záložní, i když pracnější, realizaci v prostředí C#, .NET 4.5. Důvodem přestupu z původně uvažovaného NetLoga byla nevyhovující výkonnost. NetLogo se vzhledem k počítání pravděpodobností tisíců znakových řetězců ukázalo být špatnou volbou. Druhým důvodem byla také udržitelnost a přehlednost kódu, která se přechodem na C# podstatně zlepšila.
Pro sofistikovanější použití matematických rozdělení (Normálové, Beta, Gamma...) byla do projektu začleněna knihovna Troschuetz.Random. Pro zamýšlené porovnávání podobnosti znakových řetězců skrze Levenshtein a Metaphone pak project využívá transkribce původní implementace Double Metaphone Lawrence Philipse.
Původním záměrem bylo take pro pohodlnou analýzu poskytnout uživateli kompletní záznam pro každý krok simulace, tedy například i soupis mapy pro každý krok. Což se ale vzhledem k paměťové náročnosti nepodařilo zajistit. Uspokojivým řešením je tak omezenější reporting dat pro každý krok.

Výsledky

Po dvou měsících vývoje vznikla aplikace, simulátor, umožňující parametrizaci modelu pomocí řady typů zmiňovaných matematických rozdělení. Aplikace poskytuje výstup dat (obdobně jako NetLogo) v nastavitelném grafu a v reálném čase umožňuje i přístup k aktuálním atributům agenta. Omezení aplikace je dáno zadáním, avšak zdrojový kód je dostatečně přehledný, aby nebyly v budoucnu znemožněny případné úpravy. Detailním popisem použité abstrakce a zjištěného chování se zabývá níže uvedený článek.

Výsledky jsou dostupné v zazipovaném archivu obsahujícím článek a aplikaci se zdrojovým kódem: [[3]]
Výstupní článek samostatně, popisující zjištěné vlastnosti simulací, je dostupný zde: [[4]]
Screenshot z výsledného simulátoru