{"title":"Computing the LZ-End parsing: Easy to implement and practically efficient","authors":"Patrick Dinklage","doi":"arxiv-2409.07840","DOIUrl":null,"url":null,"abstract":"The LZ-End parsing [Kreft & Navarro, 2011] of an input string yields\ncompression competitive with the popular Lempel-Ziv 77 scheme, but also allows\nfor efficient random access. Kempa and Kosolobov showed that the parsing can be\ncomputed in time and space linear in the input length [Kempa & Kosolobov,\n2017], however, the corresponding algorithm is hardly practical. We put the\nspotlight on their suboptimal algorithm that computes the parsing in time\n$\\mathcal{O}(n \\lg\\lg n)$. It requires a comparatively small toolset and is\ntherefore easy to implement, but at the same time very efficient in practice.\nWe give a detailed and simplified description with a full listing that\nincorporates undocumented tricks from the original implementation, but also\nuses lazy evaluation to reduce the workload in practice and requires less\nworking memory by removing a level of indirection. We legitimize our algorithm\nin a brief benchmark, obtaining the parsing faster than the state of the art.","PeriodicalId":501525,"journal":{"name":"arXiv - CS - Data Structures and Algorithms","volume":"2 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Data Structures and Algorithms","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.07840","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
The LZ-End parsing [Kreft & Navarro, 2011] of an input string yields
compression competitive with the popular Lempel-Ziv 77 scheme, but also allows
for efficient random access. Kempa and Kosolobov showed that the parsing can be
computed in time and space linear in the input length [Kempa & Kosolobov,
2017], however, the corresponding algorithm is hardly practical. We put the
spotlight on their suboptimal algorithm that computes the parsing in time
$\mathcal{O}(n \lg\lg n)$. It requires a comparatively small toolset and is
therefore easy to implement, but at the same time very efficient in practice.
We give a detailed and simplified description with a full listing that
incorporates undocumented tricks from the original implementation, but also
uses lazy evaluation to reduce the workload in practice and requires less
working memory by removing a level of indirection. We legitimize our algorithm
in a brief benchmark, obtaining the parsing faster than the state of the art.