Algoritmus pro pevné body homomorfismů na slovech
Algorithm for word morphisms fixed points
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/36917Identifiers
Study Information System: 91503
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Žemlička, Jan
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Mathematics
Department
Department of Algebra
Date of defense
23. 6. 2011
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
Keywords (Czech)
pevný bod, polynomiální algoritmus, union-find, složitostKeywords (English)
fixed point, polynomial algorithm, union-find, complexityV předložené práci studuji polynomiální algoritmus, který pro dané slovo rozhoduje, zda je pevným bodem nějakého netriviálního homomorfismu. Součástí práce je zpřesněný odhad složitosti, algoritmus v nejhorším případě pracuje v čase O(m · n), kde n značí délku slova a m velikost použité abecedy. V práci se dále zabývám problémem union-find, který je stěžejní součástí popisovaného algoritmu, a s odhadem jeho složitosti související Ackermannovou funkcí. V práci jsou shrnuty používané metody a důkazy jejich složitostí a je popsán postup, kterým lze řešit speciální případ union-find vyskytující se ve zkoumaném algoritmu. Následuje konkrétní implementace algoritmu, jejíž testovaná složitost odpovídá zpřesněnému odhadu. Součástí práce je také vizualizace chodu algoritmu na konkrétních vstupech.
In the present work we study the first polynomial algorithm, which tests if the given word is a fixed point of a nontrivial morphism. This work contains an improved worst-case complexity estimate O(m · n) where n denotes the word length and m denotes the size of the alphabet. In the second part of this work we study the union-find problem, which is the crucial part of the described algorithm, and the Ackermann function, which is closely linked to the union-find complexity. We summarize several common methods and their time complexity proofs. We also present a solution for a special case of the union-find problem which appears in the studied algorithm. The rest of the work focuses on a Java implementation, whose time tests correspond to improved upper bound, and a visualization useful for particular entries.