calc_lz_complexity
This function calculates the complexity of a finite binary sequence, according to the work presented by Abraham Lempel and Jacob Ziv in the paper "On the Complexity of Finite Sequences", published in "IEEE Transactions on Information Theory", Vol. IT-22, no. 1, January 1976.
From that perspective, the algorithm could be referred to as "LZ76".
The function supports two methods of evaluating sequence complexity:
1. Decomposition into an exhaustive production process
2. Decomposition into a primitive production process
Exhaustive complexity can be considered a lower limit of the complexity measurement approach proposed in LZ76, and primitive complexity an upper limit.
Currently, only sequences with binary alphabets (0, 1) are supported.
Feel free to email me if you find this function useful, find bugs with it, or have any suggestions for improvements.
Zitieren als
Quang Thai (2024). calc_lz_complexity (https://www.mathworks.com/matlabcentral/fileexchange/38211-calc_lz_complexity), MATLAB Central File Exchange. Abgerufen .
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
1.9.0.0 | Corrected normalisation for the 'primitive' complexity type calculation. It will give a slightly different number to before, but this new result is actually what was intended. |
||
1.8.0.0 | Fixed a calculation that was needed for the 'normalize' option when using newer versions of MATLAB, due to MATLAB changing one of the return values from the unique() function from a row to a column vector. Retested on MATLAB 2017b. |
||
1.7.0.0 | The eigenfunction that corresponds with the input sequence, and calculated internally, can now be obtained by the caller of calc_lz_complexity() as a return value. |
||
1.4.0.0 | Another optimisation tweak that should result in this implementation running faster again for most sequences than the previous version. |
||
1.3.0.0 | Major speed improvement. The old version was actually very inefficient and slow. A rethink of the eigenfunction calculation was warranted. On my PC, this new version runs about 140x faster than the previous version!!! |
||
1.2.0.0 | Changed the way normalized complexity was calculated. It is now normalized against (n/log2(n)), rather than n, where n is the length of the sequence. Upon reviewing Lempel-Ziv's paper, this normalization seems to make more sense. |
||
1.1.0.0 | Forgot to include a helper function that's used by the main calc_lz_complexity() function. |
||
1.0.0.0 |