punktacja Weissmana
Wynik Weissmana to wskaźnik wydajności dla aplikacji do bezstratnej kompresji . Został opracowany przez Tsachy'ego Weissmana , profesora na Uniwersytecie Stanforda i Vinitha Misrę, absolwenta, na prośbę producentów serialu telewizyjnego HBO Dolina Krzemowa , programu telewizyjnego o fikcyjnym start-upie technologicznym pracującym nad algorytmem kompresji danych . Porównuje zarówno wymagany czas, jak i współczynnik kompresji mierzonych aplikacji z aplikacjami a de facto standard w zależności od typu danych .
Formuła jest następująca; gdzie r to współczynnik kompresji , T to czas potrzebny do kompresji, te podkreślone to te same metryki dla standardowego kompresora, a alfa to stała skalowania.
Wynik Weissmana został wykorzystany przez Daniela Reitera Horna i Mehanta Baida z Dropbox do wyjaśnienia rzeczywistej pracy nad bezstratną kompresją. Według autorów „w większości przypadków faworyzuje szybkość kompresji nad współczynnikiem”.
Przykład
Ten przykład pokazuje wynik dla danych nagrody Huttera przy użyciu paq8f jako standardu i 1 jako stałej skalowania.
Aplikacja | Stopień sprężania | Czas kompresji [min] | punktacja Weissmana |
---|---|---|---|
paq8f | 5.467600 | 300 | 1.000000 |
raq8g | 5,514990 | 420 | 0,720477 |
paq8hkcc | 5.682593 | 300 | 1.039321 |
paq8hp1 | 5.692566 | 300 | 1.041145 |
paq8hp2 | 5.750279 | 300 | 1.051701 |
paq8hp3 | 5.800033 | 300 | 1.060801 |
paq8hp4 | 5.868829 | 300 | 1.073826 |
paq8hp5 | 5.917719 | 300 | 1.082325 |
paq8hp6 | 5.976643 | 300 | 1.093102 |
paq8hp12 | 6.104276 | 540 | 0,620247 |
rozkład8 | 6.261574 | 540 | 0,63623 |
rozkład8 | 6.276295 | 540 | 0,637726 |
Ograniczenia
Chociaż wartość odnosi się do standardów, z którymi jest porównywana, jednostka używana do pomiaru czasu zmienia wynik (patrz przykłady 1 i 2). Wynika to z wymogu, aby argument funkcji logarytmicznej był bezwymiarowy . Mnożnik również nie może mieć wartości liczbowej 1 lub mniejszej, ponieważ logarytm z 1 to 0 (przykłady 3 i 4), a logarytm dowolnej wartości mniejszej niż 1 jest ujemny (przykłady 5 i 6); co dałoby wyniki o wartości 0 (nawet ze zmianami), niezdefiniowane lub ujemne (nawet jeśli są lepsze niż dodatnie).
Przykłady
# | Sprężarka standardowa | Punktowana sprężarka | punktacja Weissmana | Obserwacje | ||||
---|---|---|---|---|---|---|---|---|
Stopień sprężania | Czas kompresji | Log (czas kompresji) | Stopień sprężania | Czas kompresji | Log (czas kompresji) | |||
1 | 2.1 | 2 min | 0,30103 | 3.4 | 3 min | 0,477121 | 1×(3,4/2,1)×( 0,30103 / 0,477121 )= 1,021506 | Zmiana jednostki lub skali zmienia wynik. |
2 | 2.1 | 120 sek | 2.079181 | 3.4 | 180 sek | 2.255273 | 1×(3,4/2,1)×( 2,079181 / 2,255273 )= 1,492632 | |
3 | 2.2 | 1 minuta | 0 | 3.3 | 1,5 min | 0,176091 | 0 1×(3,3/2,2)×( /0,176091)= 0 | Jeśli czas wynosi 1, jego dziennik wynosi 0; wówczas wynik może wynosić 0 lub nieskończoność . |
4 | 2.2 | 0,667 min | −0,176091 | 3.3 | 1 minuta | 0 | 0 1×(3,3/2,2)×(−0,176091/ )= nieskończoność | |
5 | 1.6 | 0,5 godz | −0,30103 | 2.9 | 1,1 godz | 0,041393 | 1×(2,9/1,6)×( −0,30103 /0,041393)= −13,18138 | Jeśli czas jest mniejszy niż 1, jego logarytm jest ujemny; wówczas wynik może być ujemny. |
6 | 1.6 | 1,1 godz | 0,041393 | 1.6 | 0,9 godz | −0,045757 | 1×(1,6/1,6)×(0,041393/ −0,045757 )= −0,904627 |