Post on 10-Jun-2020
UNIVERSIDADE FEDERAL DE PERNAMBUCO
GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO
CENTRO DE INFORMÁTICA
2012.2
Análise da Eficiência da Codificação de Huffman em Extensões de Fontes de Informação
TRABALHO DE GRADUAÇÃO
Aluno: Diocleciano Dantas Neto {ddn2@cin.ufpe.br} Orientador: Daniel Carvalho da Cunha {dcunha@cin.ufpe.br}
Recife, 29 de abril de 2013.
II
UNIVERSIDADE FEDERAL DE PERNAMBUCO
GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO
CENTRO DE INFORMÁTICA
2012.2
Análise da Eficiência da Codificação de Huffman em Extensões de Fontes de Informação
TRABALHO DE GRADUAÇÃO
Trabalho de Graduação apresentado no Centro de Informática da Universidade Federal de Pernambuco por Diocleciano Dantas Neto e orientado pelo Prof. Dr. Daniel Carvalho da Cunha, como requisito para a obtenção do grau de Bacharel em Engenharia da Computação.
Recife, 2013
III
Análise da Eficiência da Codificação de Huffman em Extensões de Fontes de Informação
Diocleciano Dantas Neto
________________________________________________ Orientador: Prof. Dr. Daniel Carvalho da Cunha
IV
“A felicidade não se resume na
ausência de problemas, mas sim na
sua capacidade de lidar com eles.”
Albert Einstein
V
Primeiramente agradeço e dedico este
trabalho aos meus pais e familiares. Em
especial agradeço a Isabella Santos pelo
apoio e motivação, sempre com
conselhos sábios e incentivos positivos.
VI
Resumo
Atualmente, o método de codificação de Huffman e adaptações do mesmo são
usados principalmente no campo de compressão sem perdas de arquivos de textos,
áudio, imagens e vídeos. Uma aplicação direta para os formatos de imagens são os
formatos JPG e o PNG. Para arquivos de vídeos, utiliza-se o formato MPEG, enquanto
que para áudio, os formatos MP3 e AAC. Por fim, diversos programas de compressão,
como o Winzip e Gzip, também fazem uso da compressão sem perdas.
Sabe-se, por consequência do Primeiro Teorema de Shannon, que se pode
aumentar a eficiência da codificação através de extensões da fonte de informação, ou
seja, quanto maior a ordem da fonte estendida, mais a eficiência se aproximará de
100%. No entanto, para algumas distribuições de probabilidade do alfabeto da fonte
original, essa afirmação não é verdadeira, pois ocorre um deterioramento da eficiência
quando se aumenta a ordem da fonte estendida, mas respeitando-se os limites
impostos pelo Primeiro Teorema de Shannon.
Este trabalho tem como objetivo realizar uma análise da codificação de Huffman
para fontes de informações sem memória e suas extensões. Pretende-se avaliar o
comportamento das eficiências dos códigos obtidos para diversas extensões da fonte,
quando a distribuição de probabilidade do alfabeto da fonte original é alterada.
VII
Índice
1. Introdução ...................................................................................................................... 10
2. Revisão Bibliográfica ....................................................................................................... 12
2.1 Teoria da Informação ............................................................................................... 12
2.2 Fontes de Informação .............................................................................................. 12
2.3 Extensão de uma Fonte sem Memória ..................................................................... 13
2.4 Codificação de Fontes de Informação ...................................................................... 14
2.5 Código de Huffman .................................................................................................. 16
3. Experimentos .................................................................................................................. 22
3.1 Introdução ............................................................................................................... 22
3.2 Análise dos Resultados ............................................................................................ 23
3.2.1 Fonte Binária ................................................................................................... 23
3.2.2 Fonte Ternária ................................................................................................. 29
4. Conclusão e Trabalhos Futuros ........................................................................................ 34
5. Referências ..................................................................................................................... 36
ANEXO I – Códigos do MATLAB utilizados ................................................................................ 37
ANEXO II – Distribuições de probabilidade para fonte ternária ................................................ 41
VIII
Lista de Figuras
Figura 1: Representação de uma fonte de informação discreta. .............................................. 13
Figura 2: Hierárquia de classificação de códigos. ..................................................................... 15
Figura 3: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função
da probabilidade (extensões de ordem 2 a 5). ..................................................................... 24
Figura 4: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função
da probabilidade (extensões de ordem 6 a 9). ..................................................................... 24
Figura 5: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função
da probabilidade (extensões de ordem 2 a 5) – escala ampliada. ........................................ 25
Figura 6: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função
da probabilidade (extensões de ordem 6 a 9) – escala ampliada. ........................................ 25
Figura 7: Perda de eficiência para as extensões da fonte binária em função da distribuição de
probabilidade e ordem de extensão. ....................................................................................... 27
Figura 8: Plano Perda de Eficiência das extensões versus Distribuição de Probabilidade para a
fonte binária. .......................................................................................................................... 28
Figura 9: Plano Perda de Eficiência das extensões versus Ordem da Extensão para a fonte
binária. ................................................................................................................................... 29
Figura 10: Comportamento da eficiência da codificação de Huffman em função da distribuição
de probabilidade dos símbolos da fonte ternária..................................................................... 30
Figura 11: Eficiência do código de Huffman obtido para a extensão de 2ª ordem da fonte
ternária. .................................................................................................................................. 31
Figura 12: Eficiência do código de Huffman obtido para a extensão de 3ª ordem da fonte
ternária. .................................................................................................................................. 31
Figura 13: Eficiência do código de Huffman obtido para a extensão de 4ª ordem da fonte
ternária. .................................................................................................................................. 31
Figura 14: Eficiência do código de Huffman obtido para a extensão de 5ª ordem da fonte
ternária. .................................................................................................................................. 31
Figura 15: Perda de eficiência obtida para a codificação de Huffman, considerando a fonte
ternária e suas extensões de ordem 2 a 5................................................................................ 32
IX
Lista de Tabelas
Tabela 1: Um código de bloco não singular. ............................................................................ 14
Tabela 2: Um código unicamente decodificável. ...................................................................... 15
Tabela 3: Um código instatâneo. ............................................................................................. 15
Tabela 4: Codificação de Huffman de uma fonte binária com distribuição de probabilidade
dada por . ....................................................................................... 18
Tabela 5: Codificação de Huffman para a extensão de segunda ordem de uma fonte binária
com distribuição de probabilidade dada por ................................... 19
Tabela 6: Codificação de Huffman para a extensão de terceira ordem de uma fonte binária com
distribuição de probabilidade dada por . ......................................... 21
Tabela 7: Distribuições de probabilidade para o experimento da fonte binária. ....................... 23
Tabela 8: Distribuições de probabilidade para o experimento da fonte ternária. ..................... 41
10
1. Introdução
A primeira menção ao termo “Teoria da Informação” ocorreu em 1927 por Ralph
Vinton Lyon Hartley durante trabalho apresentado no Congresso Internacional de
Telégrafo e Telefone (SEIZING, 2009). Surgiu naquele momento, os primeiros esboços
de uma nova ciência: a Teoria da Informação.
Muitos dos avanços na Teoria da Informação aconteceram no final da década de
40 e na década de 50 com as publicações dos estudos de Robert Wiener e de Claude
Elwood Shannon (SEIZING, 2009). Vários avanços tecnológicos ocorridos no Século XX e
além se deram com base nas teorias desses dois grandes estudiosos. Shannon
introduziu o conceito de entropia da informação, que basicamente é uma medida de
incerteza. A partir desse conceito, foi possível estabelecer uma medida para a
informação e calcular parâmetros tais como a eficiência da codificação de uma fonte
de informação.
Entre as áreas em que a Teoria da Informação é aplicada, pode-se destacar a
compressão de dados com e sem perdas, a codificação de canal, a codificação de fonte
de informação, a criptografia e a transmissão de dados. No campo das comunicações e
compressão de dados, a eficiência é um requisito chave, tendo um grande peso no
desempenho do sistema em questão.
Em 1952, David Huffman, o então estudante de Doutorado do MIT, apresentou
um método ótimo para obter um código compacto para fontes de informação sem
memória, um marco na evolução da compressão e transmissão de dados.
Atualmente o método de codificação de Huffman, ou adaptações do mesmo, é
usado principalmente no campo de compressão sem perdas de arquivos de textos,
áudio, imagens e vídeos. Uma aplicação direta para os formatos de imagens são os
formatos JPG e o PNG. Para arquivos de vídeos, utiliza-se o formato MPEG, enquanto
que para áudio, são usados os formatos MP3 e AAC. Por fim, diversos programas de
compressão, como o Winzip e Gzip, também fazem uso da compressão sem perdas.
11
Sabe-se, por consequência do Primeiro Teorema de Shannon (ABRAMSON, 1963,
p.72), que se pode aumentar a eficiência da codificação através de extensões da fonte
de informação, ou seja, quanto maior a ordem da fonte estendida, mais a eficiência se
aproximará de 100%. No entanto, para algumas distribuições de probabilidade do
alfabeto da fonte, essa afirmação não é verdadeira: tem-se um deterioramento da
eficiência quando se aumenta a ordem da fonte estendida, mas respeitando-se os
limites impostos pelo Primeiro Teorema de Shannon (FENWICK, 1995).
Este trabalho tem como objetivo realizar uma análise da codificação de
Huffman para fontes de informações sem memória e suas extensões. Pretende-se
avaliar o comportamento das eficiências dos códigos obtidos para diversas extensões
da fonte, quando a distribuição de probabilidade do alfabeto da fonte original é
alterada.
12
2. Revisão Bibliográfica
Este capítulo tem o intuito de realizar uma revisão de forma sucinta dos
principais conceitos envolvidos neste trabalho de graduação, baseado nas definições e
conceitos encontrados em (ABRAMSON, 1963).
2.1 Teoria da Informação
No campo da computação, vários problemas estão relacionados com a
representação, armazenamento e transmissão da informação. A partir do estudo
realizado em (SHANNON, 1948), tais questões começaram a ser respondidas quando
foi definida uma medida para a quantidade de informação. A partir daí, foi possível
extrair algumas propriedades da informação.
Um conceito importante é como medir a informação a ser armazenada ou
transmitida. Para isso, define-se a quantidade de informação associada a um evento
como sendo:
,
em que é a probabilidade de ocorrência do evento .
A unidade de medida da quantidade de informação é definida pela base do
logaritmo utilizado. Caso seja a base 2, a unidade de medida da quantidade de
informação é “bit” (acrônimo de binary unit). Neste trabalho, assumiremos o “bit”
como unidade de informação.
2.2 Fontes de Informação
Uma fonte de informação nada mais é do que um mecanismo gerador de
informação a partir de um alfabeto de símbolos finito e é denotada por
13
, em que cada símbolo ocorre com probabilidade , com
A Figura 1 ilustra a representação de uma fonte de informação.
Figura 1: Representação de uma fonte de informação discreta.
Em uma fonte discreta sem memória seus símbolos do alfabeto são
estaticamente independentes, tal que:
Define-se a quantidade média de informação, ou entropia, como sendo a
quantidade média de informação por símbolo da fonte:
Interpreta-se também a entropia como sendo “a quantidade média de incerteza
que o observador possui antes de obsevar a saída da fonte” (ABRAMSON, p. 15)
2.3 Extensão de uma Fonte sem Memória
Dependendo do sistema a ser modelado, uma fonte de informação precisará de
um alfabeto com mais símbolos. Em vez de aumentar a quantidade de símbolos do
alfabeto, pode-se considerar a saída da fonte formada por blocos de símbolos do
alfabeto original. Assim, a fonte de informação passa a ter
símbolos (sequências) de informação possíveis.
Formalmente, define-se a extensão de uma fonte de informação sem memória
como uma fonte de informação com alfabeto , em que cada
Fonte de
Informação
14
símbolo corresponde a uma sequência de símbolos de que possui uma
probabilidade de ocorrência. O fato de a fonte original não possuir memória faz
com que a fonte estendida também não possua memória. Sendo assim, a
probabilidade de cada símbolo corresponde à probabilidade da sequência de ’s.
Como os símbolos da fonte são estatisticamente independentes, tem-se que:
.
A partir da definição apresentada anteriormente, pode-se demonstrar que a
entropia da fonte estendida se relaciona com a entropia da fonte original, tal que
(ABRAMSON, 1963, p. 21):
(2.1)
2.4 Codificação de Fontes de Informação
Um código é definido como sendo um mapeamento de todos os símbolos
possíveis de em sequências de símbolos de algum outro alfabeto ,
definido como alfabeto do código. Com isso, pode-se definir um código de bloco, que é
um código que mapeia cada símbolo do alfabeto da fonte em uma sequência fixa de
símbolos do alfabeto , que são chamadas de palavras-código.
Os códigos podem ser classificados como:
Não Singular: caso todas as palavras códigos são distintas entre si. Ex:
Tabela 1: Um código de bloco não singular.
Símbolos da Fonte Código
s1 0
s2 11
s3 00
s4 01
15
Unicamente decodificável (UD): somente se a n-ésima extensão do código
é não singular, para todo n finito. Ex.:
Tabela 2: Um código unicamente decodificável.
Símbolos da Fonte Código
s1 00
s2 01
s3 10
s4 11
Instantâneo: se for possível decodificar cada palavra em uma sequência
sem ser preciso referir-se a símbolos futuros. Ex.:
Tabela 3: Um código instatâneo.
Símbolos da Fonte Código
s1 0
s2 10
s3 110
s4 1110
A hierarquia de classificação dos tipos de código é mostrada na Figura 2.
CÓDIGOS
DE BLOCO
NÃO DE BLOCO
SINGULAR
NÃO SINGULAR
UNICAMENTE DECODIFICÁVEL
NÃO UNICAMENTE
DECODIFICÁVEL
INSTANTÂNEO
NÃO INSTANTÂNEO
Figura 2: Hierárquia de classificação de códigos.
16
O comprimento médio de um código é definido como sendo:
em que é o comprimento de cada palavra código.
Um código unicamente decodificável é dito compacto se seu comprimento
médio for menor ou igual ao comprimento médio de qualquer outro código
unicamente decodificável para a mesma fonte e o mesmo alfabeto do código. Dito
isso, pode-se deduzir que (ABRAMSON, p. 68):
(2.2)
Pode-se agora definir a eficiência de um código, como sendo:
Em consequência de (2.2), tem-se que:
2.5 Código de Huffman
O código gerado pelo método de Huffman (HUFFMAN, 1952) é dito compacto,
pois possui o menor comprimento médio possível se os símbolos da fonte S forem
decodificados um a um. O método de codificação de Huffman é dito ótimo, pois
garante sempre gerar um código compacto. O código de Huffman também é
instantâneo.
Para obter um código de Huffman, considere a fonte , com o alfabeto
e probabilidades , e os símbolos são ordenados de tal
forma que . Para compor o código de Huffman, tomam-
se os seguintes passos:
17
Combina-se os dois últimos símbolos em um só, obtendo-se uma nova
fonte com apenas símbolos (redução de );
os símbolos dessa redução podem ser reordenados e novamente
combina-se os dois últimos para formar uma nova redução;
segue-se este procedimento, constrói-se uma sequência de fontes, cada
uma contendo um símbolo a menos em relação à anterior, até que uma
fonte com apenas 2 símbolos seja obtida, onde um código trivial
instantâneo é obtido apenas com duas palavras código ‘0’ e ‘1’;
o próximo passo é voltar na árvore binária, produzida pelas sucessivas
reduções, rastreando por quais símbolos da fonte reduzida
imediatamente anterior o símbolo foi obtido e compor um novo código
instantâneo para esta fonte, concatenando ‘0’ ou ‘1’ para os respectivos
símbolos da fonte reduzida anterior até se obter um código instantâneo
para a fonte original.
A prova que o código obtido é compacto pode ser encontrada em (ABRAMSON,
1963, p. 82).
A seguir, é apresentado um exemplo da aplicação do procedimento para se obter
um código compacto por meio da codificação de Huffman de uma fonte binária com
alfabeto e probabilidades , assim como de
suas extensões até a terceira ordem.
Primeiramente, calcula-se a entropia da fonte binária, tal que:
Em seguida, aplica-se a codificação de Huffman à fonte binária. Neste caso, basta
rotular os símbolos da fonte com os bits 0 e 1, conforme indicado na Tabela 4.
18
Tabela 4: Codificação de Huffman de uma fonte binária com distribuição de probabilidade dada por .
Fonte Original
Símbolo Probabilidade Código C1
s1 0,7 0
s2 0,3 1
Após a obtenção do código, calcula-se o comprimento médio ( ) e a eficiência
( ) do código C1, tal que:
A extensão de segunda ordem da fonte é definida como
e probabilidades:
Com o auxílio da Equação , calcula-se a entropia da fonte estendida :
Vamos agora apresentar o procedimento para a obtenção de um código de
Huffman para a fonte estendida .
Primeiramente, ordena-se os símbolos da fonte estendida em ordem
decrescente de probabilidade, como nas primeira e segunda colunas da Tabela 2.
19
Posteriormente, combina-se os dois últimos símbolos para obter a fonte reduzida
denotada como , fazendo , como indicado pela linha em vermelho
na Tabela 5. Novamente ordena-se os símbolos da fonte reduzida pelas
probabilidades em ordem decrescente e repete-se o último passo para chegar à fonte
reduzida , que contém somente dois símbolos. Atribui-se os bits 0 e 1 como palavras
código dos símbolos de e retorna-se à fonte reduzida mantendo a palavra código
do símbolo em comum entre e , como indicado pela seta tracejada na Tabela 5.
Então, concatena-se 0 e 1 à palavra código do símbolo de com menor
probabilidade, dando origem às palavras códigos dos dois símbolos de do qual foi
originado. Repete-se esse passo entre e a fonte estendida. Finalmente, o código de
Huffman C2 é obtido para a fonte estendida .
Tabela 5: Codificação de Huffman para a extensão de segunda ordem de uma fonte binária com distribuição de probabilidade dada por .
Fonte Original S2 Fontes Reduzidas
Símbolo Prob. Cód.C2 S1 S2
s1s1 0.49
1 0.49
1
0.51
0
s1s2 0.21 01 0.30
00
0.49
1
s2s1 0.21 000 0.21
01
s2s2 0.09 001
Após a obtenção do código, calcula-se o comprimento médio ( ) e a eficiência
( ) do código C2, tal que:
20
Para finalizar o exemplo, considere a extensão de terceira ordem da fonte ,
sendo:
e probabilidades, tal que:
Com o auxílio da Equação , calcula-se a entropia da fonte estendida :
A seguir, o procedimento para obter um código de Huffman para a fonte
estendida é apresentado na Tabela 6, semelhante ao procedimento para a fonte
estendida .
21
Tabela 6: Codificação de Huffman para a extensão de terceira ordem de uma fonte binária com distribuição de probabilidade dada por .
Fonte Original S2 Fontes Reduzidas
Símb. Prob. Cód. C3 S1 S2 S3 S4 S5 S6
s1s1s1 0.343
00 0.343
00
0.343
00
0.343
00
0.343
00
0.363
1
0.637
0
s1s1s2 0.147 11 0.147
11
0.147
11
0.216
10
0.294
01
0.343
00
0.363
1
s1s2s1 0.147 010 0.147
010
0.147
010
0.147
11
0.216
10
0.294
01
s2s1s1 0.147 011 0.147
011
0.147
011
0.147
010
0.147
11
s1s2s2 0.063
1000
0.09
101
0.126
100
0.147
011
s2s1s2 0.063
1001
0.063
1000
0.09
101
s2s2s1 0.063 1010 0.063
1001
s2s2s2 0.027 1011
Após a obtenção do código, calcula-se o comprimento médio ( ) e a eficiência
( ) do código C3, tal que:
Foram apresentados e exemplificados os conceitos necessários para um bom
entendimento dos experimentos e resultados descritos nos próximos capítulos.
Em uma breve análise das eficiências e , respectivamente para os
códigos C1, C2 e C3, nota-se que , tal fato será analisado e discutido no
Capítulo 3.
22
3. Experimentos
Sabe-se que em consequência do Primeiro Teorema de Shannon (ABRAMSON,
1963, p.72), pode-se melhorar a eficiência da codificação realizando extensões da
fonte original, visto que (FENWICK, 1995):
(3.1)
em que é a ordem da extensão da fonte. Isto significa que à medida que se torna
suficientemente grande, a eficiência da -ésima extensão tende a 1. Contudo,
percebe-se no exemplo apresentado ao final do Capítulo 2, que para algumas
distribuições de probabilidade dos símbolos da fonte, o aumento da ordem da
extensão da fonte implica na degradação da eficiência do código obtido, contradizendo
a tendência estabelecida pelos limites da eficiência definidos na Equação .
3.1 Introdução
Tendo em vista o comportamento não condizente com a tendência estabelecida
no início deste capítulo pela Equação (3.1), foram realizados experimentos com o
intuito de analisar o comportamento da eficiência para codificações de Huffman de
fontes de informação sem memória e suas extensões.
Para realizar tal análise, foram feitos experimentos com o auxílio do MATLAB
R2011a, considerando o uso de fontes de informação com alfabetos binário e ternário.
Para compor as distribuições de probabilidade dos símbolos da fonte binária e ternária
foi adotado um passo de 0,01. No processo de codificação de Huffman, foi considerada
apenas a utilização de alfabeto de código binário. Os códigos gerados no MATLAB para
os experimentos estão apresentados no ANEXO I.
A escolha da ordem máxima de extensão da fonte analisada se deu pela
avaliação do custo computacional exigido para a obtenção do código, bem como dos
cálculos de seus parâmetros, uma vez que a complexidade cresce exponencialmente
com , em que é o número de símbolos do alfabeto da fonte original e é a ordem
23
da extensão. Por este motivo, foram obtidas extensões de nona e quinta ordem para
as fontes binária e ternária, respectivamente.
3.2 Análise dos Resultados
Percebe-se uma tendência em relação à distribuição de probabilidade dos
símbolos da fonte: tanto para a fonte binária quanto para a ternária, a eficiência do
código tende a crescer, formando picos convexos crescentes e a quantidade de picos é
diretamente proporcional à ordem da extensão. Uma análise mais detalhada é
realizada nas próximas seções
3.2.1 Fonte Binária
As distribuições de probabilidade da fonte binária estão indicadas na Tabela 7,
em que é a probabilidade de ocorrência do símbolo 0 e é a probabilidade de
ocorrência do símbolo 1. No total, foram consideradas 49 distribuições de
probabilidade.
Tabela 7: Distribuições de probabilidade para o experimento da fonte binária.
Distribuição 1 - Distribuição 1 - Distribuição 1 -
1 0,01 0,99 18 0,18 0,82 35 0,35 0,65
2 0,02 0,98 19 0,19 0,81 36 0,36 0,64
3 0,03 0,97 20 0,20 0,80 37 0,37 0,63
4 0,04 0,96 21 0,21 0,79 38 0,38 0,62
5 0,05 0,95 22 0,22 0,78 39 0,39 0,61
6 0,06 0,94 23 0,23 0,77 40 0,40 0,60
7 0,07 0,93 24 0,24 0,76 41 0,41 0,59
8 0,08 0,92 25 0,25 0,75 42 0,42 0,58
9 0,09 0,91 26 0,26 0,74 43 0,43 0,57
10 0,10 0,90 27 0,27 0,73 44 0,44 0,56
11 0,11 0,89 28 0,28 0,72 45 0,45 0,55
12 0,12 0,88 29 0,29 0,71 46 0,46 0,54
13 0,13 0,87 30 0,30 0,70 47 0,47 0,53
14 0,14 0,86 31 0,31 0,69 48 0,48 0,52
15 0,15 0,85 32 0,32 0,68 49 0,49 0,51
16 0,16 0,84 33 0,33 0,67
17 0,17 0,83 34 0,34 0,66
24
Para cada fonte binária representada por uma distribuição da Tabela 7, foram
geradas extensões de ordem , e para cada extensão considerada, foi
gerado um código de Huffman e calculada a sua eficiência. As Figuras 3 e 4 ilustram o
comportamento das eficiências em função da probabilidade do símbolo da fonte
binária original.
Figura 3: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função da probabilidade (extensões de ordem 2 a 5).
Figura 4: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função da probabilidade (extensões de ordem 6 a 9).
25
Uma vez que os valores de eficiência são muito próximos (fontes estendidas a
partir da 5ª ordem), alguns trechos das Figuras 3 e 4 foram ampliados, destacando-se
apenas as eficiências acima de 95% (extensões de ordem 2 a 5) e 98% (extensões de
ordem 6 a 9), respectivamente. As Figuras 5 e 6 mostram a ampliação mencionada.
Figura 5: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função da probabilidade (extensões de ordem 2 a 5) – escala ampliada.
Figura 6: Eficiência para a codificação de Huffman da fonte binária e suas extensões em função da probabilidade (extensões de ordem 6 a 9) – escala ampliada.
26
Para distribuições de probabilidade a partir de aproximadamente ,
percebe-se que a eficiência da codificação aproxima-se de 100% com um ganho muito
pequeno não importando a ordem da extensão, como nota-se nas Figuras 5 e 6.
À medida que se diminui , tem-se um ganho considerável na eficiência da
codificação da extensão de segunda ordem em relação à da fonte original,
principalmente para valores pequenos de como se nota na Figura 3. Por exemplo,
para , a eficiência da codificação da extensão de segunda ordem em relação à
eficiência da fonte original dá um salto de 0,08 para 0,15, um aumento aproximado de
87%.
Para permitir a identificação das distribuições de probabilidade nas quais ocorre
a degradação da eficiência, assim como a ordem da extensão, foi gerado um gráfico
3D, no qual o eixo x representa a distribuição de probabilidade, o eixo y representa a
ordem da extensão e, por fim, o eixo z representa a magnitude da perda da eficiência.
A magnitude da perda da eficiência foi calculada pela diferença entre a eficiência
da extensão de ordem e da extensão de ordem . Isto significa que o gráfico
indica somente quais distribuições de probabilidade e em quais ordens de extensão
houve o comportamento não condizente com a tendência estabelecida pela equação
(3.1). Por exemplo, a maior magnitude de perda na eficiência do código de Huffman
ocorreu para , da extensão de terceira para a de quarta ordem, conforme
observado na Figura 7.
27
Figura 7: Perda de eficiência para as extensões da fonte binária em função da distribuição de probabilidade e ordem de extensão.
Outro resultado constatado é que se tem um ganho diminuído à medida que se
aumenta a ordem da extensão. Tal ganho deve-se ser avaliado cuidadosamente, pois
se tem que levar em conta o custo computacional associado ao cálculo da extensão e
sua respectiva codificação. Em via de regra, esse comportamento é seguido para as
demais distribuições, porém há casos onde se percebe uma perda da eficiência quando
aumentamos a ordem da extensão. A Figura 8 mostra em quais distribuições há uma
perda da eficiência, adicionalmente percebe-se que a magnitude da perda não passa
dos 2% no pior caso e que não houve perda para distribuições a partir de .
28
Figura 8: Plano Perda de Eficiência das extensões versus Distribuição de Probabilidade para a fonte binária.
Não houve perda da eficiência da codificação em relação à extensão de segunda
ordem para nenhuma distribuição de probabilidade e à medida que a ordem da
extensão cresce se observa uma tendência decrescente na magnitude da perda como
se pode perceber no gráfico da Figura 9.
29
Figura 9: Plano Perda de Eficiência das extensões versus Ordem da Extensão para a fonte binária.
Quando , a eficiência da codificação para a fonte original atinge seu valor
máximo, como também a eficiência para as suas extensões independente da ordem.
Este fato pode ser explicado por ser a única distribuição de probabilidade para a fonte
binária em que se calculando o
, para , resulta em um número inteiro.
Isso ocorre por conta do alfabeto do código ser binário e as probabilidades dos
símbolos da fonte serem potências de
, com . Pode-se obter informações
adicionais sobre esse fato em (ABRAMSON, 1963, p. 88).
3.2.2 Fonte Ternária
Foram geradas 810 combinações para a distribuição de probabilidade da fonte
ternária. As distribuições obtidas estão representadas no ANEXO II devidamente
identificadas em sequência.
Para cada distribuição de probabilidade foi atribuída uma identificação em
sequência de acordo com a Tabela 8 localizada no ANEXO II, por conta da
30
impossibilidade de representar as mesmas no eixo x de maneira legível nos gráficos
gerados para a eficiência da codificação da fonte original e suas extensões.
Para a fonte ternária, percebe-se um padrão de comportamento semelhante ao
da fonte binária, salvo quando se aproxima da distribuição de probabilidade
identificada como 810, pois a eficiência da codificação decresce como se nota na
Figura 10. Tanto a quantidade de picos quanto a variação dos mesmos é maior do que
para a fonte binária.
Figura 10: Comportamento da eficiência da codificação de Huffman em função da distribuição de probabilidade dos símbolos da fonte ternária.
Vale ressaltar que nas distribuições identificadas da 14 (0,01;0,16;0,83) até a 47
(0,01;0,49;0,5) a extensão de segunda ordem tem uma eficiência acima de 0,9, como
se observa na Figura 11, um ganho na eficiência da codificação entre 30% e 50%.
Com a extensão de segunda ordem da fonte ternária se obtêm, em boa parte das
distribuições de probabilidade, uma eficiência acima de 90%.
Apesar de uma variação maior da eficiência na codificação das extensões das
fontes ternárias comparada com as das fontes binárias, a eficiência da codificação para
31
as extensões das fontes ternárias se aproximam mais rapidamente de 100% na maioria
das distribuições de probabilidade, como se nota nas Figuras 11, 12, 13 e 14.
Figura 11: Eficiência do código de Huffman obtido para a extensão de 2ª ordem da fonte ternária.
Figura 12: Eficiência do código de Huffman obtido para a extensão de 3ª ordem da fonte ternária.
Figura 13: Eficiência do código de Huffman obtido para a extensão de 4ª ordem da fonte ternária.
Figura 14: Eficiência do código de Huffman obtido para a extensão de 5ª ordem da fonte ternária.
Semelhantemente ao experimento para a fonte binária, foi gerado um gráfico
onde se mostra em quais distribuições de probabilidade e extensões houve uma perda
na eficiência, ao se comparar fontes estendidas consecutivas (ordens e ). A
degradação da eficiência à medida que a ordem da extensão cresce está representada
32
na Figura 15. Nota-se que as maiores magnitudes de perda na eficiência, como
também o maior número de distribuições de probabilidades atingido, é quando se
passa da extensão de terceira para a de quarta ordem. Contudo, a magnitude da perda
é, em geral, abaixo de 2%.
Figura 15: Perda de eficiência obtida para a codificação de Huffman, considerando a fonte ternária e suas extensões de ordem 2 a 5.
A eficiência do código da extensão de segunda ordem sempre é maior para todas
as distribuições de probabilidades em relação ao da codificação da fonte original, em
outras palavras, não houve perda na magnitude da eficiência do código obtido para a
extensão de segunda ordem em relação ao código obtido para a fonte original.
Algo semelhante ao caso para a fonte binária quando é que a única
distribuição que a eficiência foi máxima na codificação da fonte original e das suas
extensões foi a identificada como 746 (0,25;0,25;0,5), pois em se calcular o
para , resulta em um número inteiro. Pode-se estender esta constatação para
33
o caso em que o alfabeto do código é ternário e as probabilidades dos símbolos da
fonte original são potências de
, com .
34
4. Conclusão e Trabalhos Futuros
Com a análise dos resultados dos experimentos, percebe-se uma tendência em
haver uma perda de maior magnitude na eficiência da codificação para a extensão de
quarta ordem em relação à de terceira ordem, em geral abaixo 2%, tanto para a fonte
binária quanto para a fonte ternária.
A perda na eficiência pode não parecer significativa, porém tem que se levar em
consideração o custo computacional para se obter as codificações das extensões em
questão. Em outras palavras, dependendo da distribuição de probabilidade da fonte
original não é viável realizar sua extensão a fim de se obter uma maior eficiência para a
codificação, para ordens acima da segunda.
Mostrou-se ser uma tendência para uma grande parte das distribuições de
probabilidades, tanto para a fonte binária quanto para a ternária, um ganho
significativo na eficiência da codificação quando se obteve a codificação da extensão
de segunda ordem. O ganho na eficiência da codificação passou dos 90% para a
maioria das distribuições de probabilidade, salvo para as distribuições da fonte binária
com e para a distribuição de número 746 da fonte ternária. Conclui-se que,
dependendo da aplicação, é valido levar em consideração a obtenção da extensão de
segunda ordem da fonte original a fim de se obter um ganho significativo da eficiência
na codificação.
Uma possível aplicação para os resultados obtidos é a codificação de imagens em
escala de cinza para a exibição em displays monocromáticos utilizando a técnica de
dithering (YAO, 2010) a fim de obter um ganho significativo na eficiência da
codificação. Desta maneira, é possível economizar largura de banda para a transmissão
dos dados em questão.
Um possível trabalho futuro seria a obtenção de expressões analíticas para
representar a eficiência da codificação de Huffman para as diversas extensões da fonte
de informação. Como também aplicar os resultados obtidos neste trabalho de
graduação para melhorar o desempenho da compressão sem perdas de imagens preto
e branco. Tratando-as como fontes de informações binárias. Desta forma seria possível
35
analisar a distribuição de probabilidade dos seus símbolos (cor do pixel) e caso seja
pertinente, realizar a extensão de segunda da fonte original a fim de se obter uma
codificação mais eficiente, consequentemente uma melhor taxa de compressão.
.
36
5. Referências
ABRAMSON, N. Information Theory and Coding. 1 ed., Mc-Graw Hill, 1963.
FENWICK, P. M., “Huffman Code Efficiencies for Extensions of Sources,” IEEE
Transactions on Communications, vol. 43, nº 2/3/4, Fev/Mar/Abr 1995.
HUFFMAN, D. A. “A Method for the Construction of Minimum-Redundancy Codes,” Proceedings of the IRE, pp. 1098-1101, Set 1952.
SALOMON, D. Data Compression – The Complete Reference. 3 ed., Springer-Verlag NY, 2004.
SEISING R., “On two 60 years old theories and the Theory of Fuzzy Sets and Systems: Cybernetics and Information Theory,” In: Proc. of the 28th North American Fuzzy Information Processing Society Annual Conf., 2009, USA, pp. 1-6.
SHANNON C. E., "A Mathematical Theory of Communication", The Bell System Technical Journal, 27, pp. 379-423 & 623-656, 1948. YAO Z., WAN Y., “A High Performance Dithering Method For Gray And Color Image Quantization,” In Proc. of the 6th International Conference on Wireless Communications Networking and Mobile Computing (WiCOM), 2010.
37
ANEXO I – Códigos do MATLAB utilizados
function [e,l,h]=huffman(prob); %HUFFMAN Retorna: % -a eficiência "e" da codificação % -o comprimento médio das palavras-código "l" % -o codigo de Huffman "h" if abs(sum(prob)-1)>10e-10 error('prob não é um vetor de probabilidade, a soma é maior do que 1') end %Ordena o vetor de probabilidade em ordem decrescente prob=sort(prob,'descend'); n=length(prob); q=prob; m=zeros(n-1,n); for i=1:n-1 [q,l]=sort(q); m(i,:)=[l(1:n-i+1),zeros(1,i-1)]; q=[q(1)+q(2),q(3:n),1]; end for i=1:n-1 c(i,:)=blanks(n*n); end c(n-1,n)='0'; c(n-1,2*n)='1'; for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1))); c(n-i,n)='0'; c(n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)='1'; for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1)); end end for i=1:n h(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n); ll(i)=length(find(abs(h(i,:))~=32)); end %Calcula o comprimento médio da codificação l=sum(prob.*ll); %Calcula a entropia da codificação binária ent=entropia(prob,2); %Calcula a eficiência da codificação e=ent/l;
38
function y=extensao(p,n,f) % Calcula até a n-ésima extensão da fonte com distribuição de %probabilidade p. Na n-ésima linha do arquivo passado como parametro 'f' é salvo %a n-ésima extensão com seu comprimento média, entropia e eficiência. 'y' é %um vetor de tamanho 'n' onde na i-ésima posição está a eficiência i-ésima %extensão. if n<1 error('A extensão tem q ser no mínimo 1') end %Aloca o vetor Y y=zeros([1,n]); %Cria arquivo de saída fid=fopen(f,'w'); %Copia a vetor de probabilidade para a primeira extensão ext=p; %Laço que calcula até a n-ésima extensão for i=1:n %primeira codificação if i==1 [e,l,h]=huffman(p); else j=1; for k=1:length(ext) for g=1:length(p) tmp(j)=ext(k)*p(g); j=j+1; end end %ext assume os novos valores da extensão ext=tmp; %os paremetros são calculados [e,l,h]=huffman(ext); end %Salva no arquivo as informações da codificação fprintf(fid,'%c','#'); fprintf(fid,'%d',i); fprintf(fid,'%s','=> '); fprintf(fid,'%f',e); fprintf(fid,'%c',' '); fprintf(fid,'%f',l); for j=1:length(h) fprintf(fid,'%s',h(j,:)); end fprintf(fid,'\n'); %salva a eficiência da i-ésima extensão y(i)=e; end %Fecha arquivo de saída e retorna o status da operação de saída fclose(fid); y;
39
function P=inserirLinha(M,k,linha) %Insere na k-ésima linha da matriz M a 'linha' caso ela ainda não exista na %matriz M. [n,m]=size(M); temLinha=0; for i=1:n if M(i,:)==linha temLinha = 1; end end if temLinha == 0 M((n+1),:)=linha; end P=M;
%Monta a matriz de probabilidades para o experimento da fonte ternaria A=0.01:0.01:0.98; B=0.01:0.01:0.98; C=0.01:0.01:0.98; p=1; P=[]; for a=1:length(A) for b=1:length(B) for c=1:length(C) prob = [A(a) B(b) C(c)]; if sum(prob) == 1 prob=sort(prob); P=inserirLinha(P,p,prob); p=p+1; end end end end
function h=entropia(p1,r) %H=ENTROPIA(P) retorna a entropia do vetor de probabilidade P %com o alfabeto da fonte com "r" símbolos. if abs(sum(p1)-1)>10e-10 error('prob não é um vetor de probabilidade, a soma é maior do que 1') end l=-log10(p1)/log10(r); h=sum(p1.*l);
40
function [E,D]=experimentoTernario(P) %E é a matriz de eficiências, onde na i-ésima linha está respectivamente %as eficiências da codificação até a extensão de ordem 5, da i-ésima distribuição %de probabilidade localizada na matriz P. for i=1:length(P) E(i,:)=extensao(P(i,:),5,int2str(i)); end [n,m]=size(E); %D é a matriz da diferença entre a eficiência da extensão de ordem (n+1)-ésima e a de n-ésima ordem D=zeros(n,(m-1)); for i=1:n for j=1:(m-1) d=E(i,j+1)-E(i,j); if d<0 D(i,j)=d; end end end
41
ANEXO II – Distribuições de probabilidade para fonte
ternária
Tabela 8: Distribuições de probabilidade para o experimento da fonte ternária.
1 [0,01 0,01 0,98]' 41 [0,01 0,43 0,56]' 81 [0,02 0,37 0,61]' 121 [0,03 0,36 0,61]'
2 [0,01 0,02 0,97]' 42 [0,01 0,44 0,55]' 82 [0,02 0,38 0,6]' 122 [0,03 0,37 0,6]'
3 [0,01 0,03 0,96]' 43 [0,01 0,45 0,54]' 83 [0,02 0,39 0,59]' 123 [0,03 0,38 0,59]'
4 [0,01 0,04 0,95]' 44 [0,01 0,46 0,53]' 84 [0,02 0,4 0,58]' 124 [0,03 0,39 0,58]'
5 [0,01 0,05 0,94]' 45 [0,01 0,47 0,52]' 85 [0,02 0,41 0,57]' 125 [0,03 0,4 0,57]'
6 [0,01 0,06 0,93]' 46 [0,01 0,48 0,51]' 86 [0,02 0,42 0,56]' 126 [0,03 0,41 0,56]'
7 [0,01 0,09 0,9]' 47 [0,01 0,49 0,5]' 87 [0,02 0,43 0,55]' 127 [0,03 0,42 0,55]'
8 [0,01 0,1 0,89]' 48 [0,02 0,02 0,96]' 88 [0,02 0,44 0,54]' 128 [0,03 0,43 0,54]'
9 [0,01 0,11 0,88]' 49 [0,02 0,03 0,95]' 89 [0,02 0,45 0,53]' 129 [0,03 0,44 0,53]'
10 [0,01 0,12 0,87]' 50 [0,02 0,04 0,94]' 90 [0,02 0,46 0,52]' 130 [0,03 0,45 0,52]'
11 [0,01 0,13 0,86]' 51 [0,02 0,05 0,93]' 91 [0,02 0,47 0,51]' 131 [0,03 0,46 0,51]'
12 [0,01 0,14 0,85]' 52 [0,02 0,08 0,9]' 92 [0,02 0,48 0,5]' 132 [0,03 0,47 0,5]'
13 [0,01 0,15 0,84]' 53 [0,02 0,09 0,89]' 93 [0,02 0,49 0,49]' 133 [0,03 0,48 0,49]'
14 [0,01 0,16 0,83]' 54 [0,02 0,1 0,88]' 94 [0,02 0,06 0,92]' 134 [0,03 0,34 0,63]'
15 [0,01 0,17 0,82]' 55 [0,02 0,11 0,87]' 95 [0,03 0,03 0,94]' 135 [0,03 0,33 0,64]'
16 [0,01 0,18 0,81]' 56 [0,02 0,12 0,86]' 96 [0,03 0,04 0,93]' 136 [0,03 0,32 0,65]'
17 [0,01 0,19 0,8]' 57 [0,02 0,13 0,85]' 97 [0,03 0,07 0,9]' 137 [0,03 0,31 0,66]'
18 [0,01 0,2 0,79]' 58 [0,02 0,14 0,84]' 98 [0,03 0,08 0,89]' 138 [0,03 0,3 0,67]'
19 [0,01 0,21 0,78]' 59 [0,02 0,15 0,83]' 99 [0,03 0,09 0,88]' 139 [0,03 0,06 0,91]'
20 [0,01 0,22 0,77]' 60 [0,02 0,16 0,82]' 100 [0,03 0,1 0,87]' 140 [0,03 0,05 0,92]'
21 [0,01 0,23 0,76]' 61 [0,02 0,17 0,81]' 101 [0,03 0,11 0,86]' 141 [0,04 0,06 0,9]'
22 [0,01 0,24 0,75]' 62 [0,02 0,18 0,8]' 102 [0,03 0,12 0,85]' 142 [0,04 0,07 0,89]'
23 [0,01 0,25 0,74]' 63 [0,02 0,19 0,79]' 103 [0,03 0,13 0,84]' 143 [0,04 0,08 0,88]'
24 [0,01 0,26 0,73]' 64 [0,02 0,2 0,78]' 104 [0,03 0,14 0,83]' 144 [0,04 0,09 0,87]'
25 [0,01 0,27 0,72]' 65 [0,02 0,21 0,77]' 105 [0,03 0,15 0,82]' 145 [0,04 0,1 0,86]'
26 [0,01 0,28 0,71]' 66 [0,02 0,22 0,76]' 106 [0,03 0,16 0,81]' 146 [0,04 0,11 0,85]'
27 [0,01 0,29 0,7]' 67 [0,02 0,23 0,75]' 107 [0,03 0,17 0,8]' 147 [0,04 0,12 0,84]'
28 [0,01 0,3 0,69]' 68 [0,02 0,24 0,74]' 108 [0,03 0,18 0,79]' 148 [0,04 0,13 0,83]'
29 [0,01 0,31 0,68]' 69 [0,02 0,25 0,73]' 109 [0,03 0,19 0,78]' 149 [0,04 0,14 0,82]'
30 [0,01 0,32 0,67]' 70 [0,02 0,26 0,72]' 110 [0,03 0,2 0,77]' 150 [0,04 0,15 0,81]'
31 [0,01 0,33 0,66]' 71 [0,02 0,27 0,71]' 111 [0,03 0,21 0,76]' 151 [0,04 0,16 0,8]'
32 [0,01 0,34 0,65]' 72 [0,02 0,28 0,7]' 112 [0,03 0,22 0,75]' 152 [0,04 0,17 0,79]'
33 [0,01 0,35 0,64]' 73 [0,02 0,29 0,69]' 113 [0,03 0,23 0,74]' 153 [0,04 0,18 0,78]'
34 [0,01 0,36 0,63]' 74 [0,02 0,3 0,68]' 114 [0,03 0,24 0,73]' 154 [0,04 0,19 0,77]'
35 [0,01 0,37 0,62]' 75 [0,02 0,31 0,67]' 115 [0,03 0,25 0,72]' 155 [0,04 0,2 0,76]'
36 [0,01 0,38 0,61]' 76 [0,02 0,32 0,66]' 116 [0,03 0,26 0,71]' 156 [0,04 0,21 0,75]'
37 [0,01 0,39 0,6]' 77 [0,02 0,33 0,65]' 117 [0,03 0,27 0,7]' 157 [0,04 0,22 0,74]'
38 [0,01 0,4 0,59]' 78 [0,02 0,34 0,64]' 118 [0,03 0,28 0,69]' 158 [0,04 0,23 0,73]'
39 [0,01 0,41 0,58]' 79 [0,02 0,35 0,63]' 119 [0,03 0,29 0,68]' 159 [0,04 0,24 0,72]'
40 [0,01 0,42 0,57]' 80 [0,02 0,36 0,62]' 120 [0,03 0,35 0,62]' 160 [0,04 0,25 0,71]'
42
161 [0,04 0,26 0,7]' 201 [0,05 0,2 0,75]' 241 [0,06 0,18 0,76]' 281 [0,07 0,17 0,76]'
162 [0,04 0,27 0,69]' 202 [0,05 0,21 0,74]' 242 [0,06 0,19 0,75]' 282 [0,07 0,18 0,75]'
163 [0,04 0,28 0,68]' 203 [0,05 0,22 0,73]' 243 [0,06 0,2 0,74]' 283 [0,07 0,19 0,74]'
164 [0,04 0,29 0,67]' 204 [0,05 0,23 0,72]' 244 [0,06 0,21 0,73]' 284 [0,07 0,2 0,73]'
165 [0,04 0,34 0,62]' 205 [0,05 0,24 0,71]' 245 [0,06 0,22 0,72]' 285 [0,07 0,21 0,72]'
166 [0,04 0,35 0,61]' 206 [0,05 0,25 0,7]' 246 [0,06 0,23 0,71]' 286 [0,07 0,22 0,71]'
167 [0,04 0,36 0,6]' 207 [0,05 0,26 0,69]' 247 [0,06 0,24 0,7]' 287 [0,07 0,23 0,7]'
168 [0,04 0,37 0,59]' 208 [0,05 0,27 0,68]' 248 [0,06 0,25 0,69]' 288 [0,07 0,24 0,69]'
169 [0,04 0,38 0,58]' 209 [0,05 0,28 0,67]' 249 [0,06 0,26 0,68]' 289 [0,07 0,25 0,68]'
170 [0,04 0,39 0,57]' 210 [0,05 0,29 0,66]' 250 [0,06 0,27 0,67]' 290 [0,07 0,26 0,67]'
171 [0,04 0,4 0,56]' 211 [0,05 0,33 0,62]' 251 [0,06 0,28 0,66]' 291 [0,07 0,27 0,66]'
172 [0,04 0,41 0,55]' 212 [0,05 0,34 0,61]' 252 [0,06 0,29 0,65]' 292 [0,07 0,28 0,65]'
173 [0,04 0,42 0,54]' 213 [0,05 0,35 0,6]' 253 [0,06 0,32 0,62]' 293 [0,07 0,29 0,64]'
174 [0,04 0,43 0,53]' 214 [0,05 0,36 0,59]' 254 [0,06 0,33 0,61]' 294 [0,07 0,31 0,62]'
175 [0,04 0,44 0,52]' 215 [0,05 0,37 0,58]' 255 [0,06 0,34 0,6]' 295 [0,07 0,32 0,61]'
176 [0,04 0,45 0,51]' 216 [0,05 0,38 0,57]' 256 [0,06 0,35 0,59]' 296 [0,07 0,33 0,6]'
177 [0,04 0,46 0,5]' 217 [0,05 0,39 0,56]' 257 [0,06 0,36 0,58]' 297 [0,07 0,34 0,59]'
178 [0,04 0,47 0,49]' 218 [0,05 0,4 0,55]' 258 [0,06 0,37 0,57]' 298 [0,07 0,35 0,58]'
179 [0,04 0,48 0,48]' 219 [0,05 0,41 0,54]' 259 [0,06 0,38 0,56]' 299 [0,07 0,36 0,57]'
180 [0,04 0,33 0,63]' 220 [0,05 0,42 0,53]' 260 [0,06 0,39 0,55]' 300 [0,07 0,37 0,56]'
181 [0,04 0,32 0,64]' 221 [0,05 0,43 0,52]' 261 [0,06 0,4 0,54]' 301 [0,07 0,38 0,55]'
182 [0,04 0,31 0,65]' 222 [0,05 0,44 0,51]' 262 [0,06 0,41 0,53]' 302 [0,07 0,39 0,54]'
183 [0,04 0,3 0,66]' 223 [0,05 0,45 0,5]' 263 [0,06 0,42 0,52]' 303 [0,07 0,4 0,53]'
184 [0,04 0,05 0,91]' 224 [0,05 0,46 0,49]' 264 [0,06 0,43 0,51]' 304 [0,07 0,41 0,52]'
185 [0,04 0,04 0,92]' 225 [0,05 0,47 0,48]' 265 [0,06 0,44 0,5]' 305 [0,07 0,42 0,51]'
186 [0,05 0,05 0,9]' 226 [0,05 0,32 0,63]' 266 [0,06 0,45 0,49]' 306 [0,07 0,43 0,5]'
187 [0,05 0,06 0,89]' 227 [0,05 0,31 0,64]' 267 [0,06 0,46 0,48]' 307 [0,07 0,44 0,49]'
188 [0,05 0,07 0,88]' 228 [0,05 0,3 0,65]' 268 [0,06 0,47 0,47]' 308 [0,07 0,45 0,48]'
189 [0,05 0,08 0,87]' 229 [0,06 0,06 0,88]' 269 [0,06 0,31 0,63]' 309 [0,07 0,46 0,47]'
190 [0,05 0,09 0,86]' 230 [0,06 0,07 0,87]' 270 [0,06 0,3 0,64]' 310 [0,08 0,08 0,84]'
191 [0,05 0,1 0,85]' 231 [0,06 0,08 0,86]' 271 [0,07 0,07 0,86]' 311 [0,08 0,09 0,83]'
192 [0,05 0,11 0,84]' 232 [0,06 0,09 0,85]' 272 [0,07 0,08 0,85]' 312 [0,08 0,1 0,82]'
193 [0,05 0,12 0,83]' 233 [0,06 0,1 0,84]' 273 [0,07 0,09 0,84]' 313 [0,08 0,11 0,81]'
194 [0,05 0,13 0,82]' 234 [0,06 0,11 0,83]' 274 [0,07 0,1 0,83]' 314 [0,08 0,12 0,8]'
195 [0,05 0,14 0,81]' 235 [0,06 0,12 0,82]' 275 [0,07 0,11 0,82]' 315 [0,08 0,13 0,79]'
196 [0,05 0,15 0,8]' 236 [0,06 0,13 0,81]' 276 [0,07 0,12 0,81]' 316 [0,08 0,14 0,78]'
197 [0,05 0,16 0,79]' 237 [0,06 0,14 0,8]' 277 [0,07 0,13 0,8]' 317 [0,08 0,15 0,77]'
198 [0,05 0,17 0,78]' 238 [0,06 0,15 0,79]' 278 [0,07 0,14 0,79]' 318 [0,08 0,16 0,76]'
199 [0,05 0,18 0,77]' 239 [0,06 0,16 0,78]' 279 [0,07 0,15 0,78]' 319 [0,08 0,17 0,75]'
200 [0,05 0,19 0,76]' 240 [0,06 0,17 0,77]' 280 [0,07 0,16 0,77]' 320 [0,08 0,18 0,74]'
43
321 [0,08 0,19 0,73]' 361 [0,09 0,21 0,7]' 401 [0,1 0,32 0,58]' 441 [0,11 0,39 0,5]'
322 [0,08 0,2 0,72]' 362 [0,09 0,22 0,69]' 402 [0,1 0,33 0,57]' 442 [0,11 0,4 0,49]'
323 [0,08 0,21 0,71]' 363 [0,09 0,23 0,68]' 403 [0,1 0,34 0,56]' 443 [0,11 0,41 0,48]'
324 [0,08 0,22 0,7]' 364 [0,09 0,24 0,67]' 404 [0,1 0,35 0,55]' 444 [0,11 0,42 0,47]'
325 [0,08 0,23 0,69]' 365 [0,09 0,29 0,62]' 405 [0,1 0,36 0,54]' 445 [0,11 0,43 0,46]'
326 [0,08 0,24 0,68]' 366 [0,09 0,3 0,61]' 406 [0,1 0,37 0,53]' 446 [0,11 0,44 0,45]'
327 [0,08 0,25 0,67]' 367 [0,09 0,31 0,6]' 407 [0,1 0,38 0,52]' 447 [0,12 0,12 0,76]'
328 [0,08 0,26 0,66]' 368 [0,09 0,32 0,59]' 408 [0,1 0,39 0,51]' 448 [0,12 0,13 0,75]'
329 [0,08 0,27 0,65]' 369 [0,09 0,33 0,58]' 409 [0,1 0,4 0,5]' 449 [0,12 0,14 0,74]'
330 [0,08 0,28 0,64]' 370 [0,09 0,34 0,57]' 410 [0,1 0,41 0,49]' 450 [0,12 0,15 0,73]'
331 [0,08 0,29 0,63]' 371 [0,09 0,35 0,56]' 411 [0,1 0,42 0,48]' 451 [0,12 0,16 0,72]'
332 [0,08 0,3 0,62]' 372 [0,09 0,36 0,55]' 412 [0,1 0,43 0,47]' 452 [0,12 0,17 0,71]'
333 [0,08 0,31 0,61]' 373 [0,09 0,37 0,54]' 413 [0,1 0,44 0,46]' 453 [0,12 0,18 0,7]'
334 [0,08 0,32 0,6]' 374 [0,09 0,38 0,53]' 414 [0,1 0,45 0,45]' 454 [0,12 0,19 0,69]'
335 [0,08 0,33 0,59]' 375 [0,09 0,39 0,52]' 415 [0,11 0,11 0,78]' 455 [0,12 0,2 0,68]'
336 [0,08 0,34 0,58]' 376 [0,09 0,4 0,51]' 416 [0,11 0,12 0,77]' 456 [0,12 0,21 0,67]'
337 [0,08 0,35 0,57]' 377 [0,09 0,41 0,5]' 417 [0,11 0,13 0,76]' 457 [0,12 0,26 0,62]'
338 [0,08 0,36 0,56]' 378 [0,09 0,42 0,49]' 418 [0,11 0,14 0,75]' 458 [0,12 0,27 0,61]'
339 [0,08 0,37 0,55]' 379 [0,09 0,43 0,48]' 419 [0,11 0,15 0,74]' 459 [0,12 0,28 0,6]'
340 [0,08 0,38 0,54]' 380 [0,09 0,44 0,47]' 420 [0,11 0,16 0,73]' 460 [0,12 0,29 0,59]'
341 [0,08 0,39 0,53]' 381 [0,09 0,45 0,46]' 421 [0,11 0,17 0,72]' 461 [0,12 0,3 0,58]'
342 [0,08 0,4 0,52]' 382 [0,1 0,1 0,8]' 422 [0,11 0,18 0,71]' 462 [0,12 0,31 0,57]'
343 [0,08 0,41 0,51]' 383 [0,1 0,11 0,79]' 423 [0,11 0,19 0,7]' 463 [0,12 0,32 0,56]'
344 [0,08 0,42 0,5]' 384 [0,1 0,12 0,78]' 424 [0,11 0,2 0,69]' 464 [0,12 0,33 0,55]'
345 [0,08 0,43 0,49]' 385 [0,1 0,13 0,77]' 425 [0,11 0,21 0,68]' 465 [0,12 0,34 0,54]'
346 [0,08 0,44 0,48]' 386 [0,1 0,14 0,76]' 426 [0,11 0,22 0,67]' 466 [0,12 0,35 0,53]'
347 [0,08 0,45 0,47]' 387 [0,1 0,15 0,75]' 427 [0,11 0,23 0,66]' 467 [0,12 0,36 0,52]'
348 [0,08 0,46 0,46]' 388 [0,1 0,16 0,74]' 428 [0,11 0,24 0,65]' 468 [0,12 0,37 0,51]'
349 [0,09 0,09 0,82]' 389 [0,1 0,17 0,73]' 429 [0,11 0,27 0,62]' 469 [0,12 0,38 0,5]'
350 [0,09 0,1 0,81]' 390 [0,1 0,18 0,72]' 430 [0,11 0,28 0,61]' 470 [0,12 0,39 0,49]'
351 [0,09 0,11 0,8]' 391 [0,1 0,19 0,71]' 431 [0,11 0,29 0,6]' 471 [0,12 0,4 0,48]'
352 [0,09 0,12 0,79]' 392 [0,1 0,2 0,7]' 432 [0,11 0,3 0,59]' 472 [0,12 0,41 0,47]'
353 [0,09 0,13 0,78]' 393 [0,1 0,21 0,69]' 433 [0,11 0,31 0,58]' 473 [0,12 0,42 0,46]'
354 [0,09 0,14 0,77]' 394 [0,1 0,22 0,68]' 434 [0,11 0,32 0,57]' 474 [0,12 0,43 0,45]'
355 [0,09 0,15 0,76]' 395 [0,1 0,23 0,67]' 435 [0,11 0,33 0,56]' 475 [0,12 0,44 0,44]'
356 [0,09 0,16 0,75]' 396 [0,1 0,24 0,66]' 436 [0,11 0,34 0,55]' 476 [0,13 0,13 0,74]'
357 [0,09 0,17 0,74]' 397 [0,1 0,28 0,62]' 437 [0,11 0,35 0,54]' 477 [0,13 0,14 0,73]'
358 [0,09 0,18 0,73]' 398 [0,1 0,29 0,61]' 438 [0,11 0,36 0,53]' 478 [0,13 0,15 0,72]'
359 [0,09 0,19 0,72]' 399 [0,1 0,3 0,6]' 439 [0,11 0,37 0,52]' 479 [0,13 0,16 0,71]'
360 [0,09 0,2 0,71]' 400 [0,1 0,31 0,59]' 440 [0,11 0,38 0,51]' 480 [0,13 0,17 0,7]'
44
481 [0,13 0,18 0,69]' 521 [0,14 0,33 0,53]' 561 [0,16 0,18 0,66]' 601 [0,17 0,34 0,49]'
482 [0,13 0,19 0,68]' 522 [0,14 0,34 0,52]' 562 [0,16 0,22 0,62]' 602 [0,17 0,35 0,48]'
483 [0,13 0,2 0,67]' 523 [0,14 0,35 0,51]' 563 [0,16 0,23 0,61]' 603 [0,17 0,36 0,47]'
484 [0,13 0,21 0,66]' 524 [0,14 0,36 0,5]' 564 [0,16 0,24 0,6]' 604 [0,17 0,37 0,46]'
485 [0,13 0,25 0,62]' 525 [0,14 0,37 0,49]' 565 [0,16 0,25 0,59]' 605 [0,17 0,38 0,45]'
486 [0,13 0,26 0,61]' 526 [0,14 0,38 0,48]' 566 [0,16 0,26 0,58]' 606 [0,17 0,39 0,44]'
487 [0,13 0,27 0,6]' 527 [0,14 0,39 0,47]' 567 [0,16 0,27 0,57]' 607 [0,17 0,4 0,43]'
488 [0,13 0,28 0,59]' 528 [0,14 0,4 0,46]' 568 [0,16 0,28 0,56]' 608 [0,17 0,41 0,42]'
489 [0,13 0,29 0,58]' 529 [0,14 0,41 0,45]' 569 [0,16 0,29 0,55]' 609 [0,17 0,2 0,63]'
490 [0,13 0,3 0,57]' 530 [0,14 0,42 0,44]' 570 [0,16 0,3 0,54]' 610 [0,17 0,19 0,64]'
491 [0,13 0,31 0,56]' 531 [0,14 0,43 0,43]' 571 [0,16 0,31 0,53]' 611 [0,18 0,18 0,64]'
492 [0,13 0,32 0,55]' 532 [0,15 0,15 0,7]' 572 [0,16 0,32 0,52]' 612 [0,18 0,2 0,62]'
493 [0,13 0,33 0,54]' 533 [0,15 0,16 0,69]' 573 [0,16 0,33 0,51]' 613 [0,18 0,21 0,61]'
494 [0,13 0,34 0,53]' 534 [0,15 0,17 0,68]' 574 [0,16 0,34 0,5]' 614 [0,18 0,22 0,6]'
495 [0,13 0,35 0,52]' 535 [0,15 0,18 0,67]' 575 [0,16 0,35 0,49]' 615 [0,18 0,23 0,59]'
496 [0,13 0,36 0,51]' 536 [0,15 0,19 0,66]' 576 [0,16 0,36 0,48]' 616 [0,18 0,24 0,58]'
497 [0,13 0,37 0,5]' 537 [0,15 0,2 0,65]' 577 [0,16 0,37 0,47]' 617 [0,18 0,25 0,57]'
498 [0,13 0,38 0,49]' 538 [0,15 0,21 0,64]' 578 [0,16 0,38 0,46]' 618 [0,18 0,26 0,56]'
499 [0,13 0,39 0,48]' 539 [0,15 0,23 0,62]' 579 [0,16 0,39 0,45]' 619 [0,18 0,27 0,55]'
500 [0,13 0,4 0,47]' 540 [0,15 0,24 0,61]' 580 [0,16 0,4 0,44]' 620 [0,18 0,28 0,54]'
501 [0,13 0,41 0,46]' 541 [0,15 0,25 0,6]' 581 [0,16 0,41 0,43]' 621 [0,18 0,29 0,53]'
502 [0,13 0,42 0,45]' 542 [0,15 0,26 0,59]' 582 [0,16 0,42 0,42]' 622 [0,18 0,3 0,52]'
503 [0,13 0,43 0,44]' 543 [0,15 0,27 0,58]' 583 [0,16 0,21 0,63]' 623 [0,18 0,31 0,51]'
504 [0,14 0,14 0,72]' 544 [0,15 0,28 0,57]' 584 [0,16 0,2 0,64]' 624 [0,18 0,32 0,5]'
505 [0,14 0,15 0,71]' 545 [0,15 0,29 0,56]' 585 [0,16 0,19 0,65]' 625 [0,18 0,33 0,49]'
506 [0,14 0,16 0,7]' 546 [0,15 0,3 0,55]' 586 [0,17 0,17 0,66]' 626 [0,18 0,34 0,48]'
507 [0,14 0,17 0,69]' 547 [0,15 0,31 0,54]' 587 [0,17 0,18 0,65]' 627 [0,18 0,35 0,47]'
508 [0,14 0,18 0,68]' 548 [0,15 0,32 0,53]' 588 [0,17 0,21 0,62]' 628 [0,18 0,36 0,46]'
509 [0,14 0,19 0,67]' 549 [0,15 0,33 0,52]' 589 [0,17 0,22 0,61]' 629 [0,18 0,37 0,45]'
510 [0,14 0,2 0,66]' 550 [0,15 0,34 0,51]' 590 [0,17 0,23 0,6]' 630 [0,18 0,38 0,44]'
511 [0,14 0,21 0,65]' 551 [0,15 0,35 0,5]' 591 [0,17 0,24 0,59]' 631 [0,18 0,39 0,43]'
512 [0,14 0,24 0,62]' 552 [0,15 0,36 0,49]' 592 [0,17 0,25 0,58]' 632 [0,18 0,4 0,42]'
513 [0,14 0,25 0,61]' 553 [0,15 0,37 0,48]' 593 [0,17 0,26 0,57]' 633 [0,18 0,41 0,41]'
514 [0,14 0,26 0,6]' 554 [0,15 0,38 0,47]' 594 [0,17 0,27 0,56]' 634 [0,18 0,19 0,63]'
515 [0,14 0,27 0,59]' 555 [0,15 0,39 0,46]' 595 [0,17 0,28 0,55]' 635 [0,19 0,19 0,62]'
516 [0,14 0,28 0,58]' 556 [0,15 0,4 0,45]' 596 [0,17 0,29 0,54]' 636 [0,19 0,2 0,61]'
517 [0,14 0,29 0,57]' 557 [0,15 0,41 0,44]' 597 [0,17 0,3 0,53]' 637 [0,19 0,21 0,6]'
518 [0,14 0,3 0,56]' 558 [0,15 0,42 0,43]' 598 [0,17 0,31 0,52]' 638 [0,19 0,22 0,59]'
519 [0,14 0,31 0,55]' 559 [0,16 0,16 0,68]' 599 [0,17 0,32 0,51]' 639 [0,19 0,23 0,58]'
520 [0,14 0,32 0,54]' 560 [0,16 0,17 0,67]' 600 [0,17 0,33 0,5]' 640 [0,19 0,24 0,57]'
45
481 [0,13 0,18 0,69]' 521 [0,14 0,33 0,53]' 561 [0,16 0,18 0,66]' 601 [0,17 0,34 0,49]'
482 [0,13 0,19 0,68]' 522 [0,14 0,34 0,52]' 562 [0,16 0,22 0,62]' 602 [0,17 0,35 0,48]'
483 [0,13 0,2 0,67]' 523 [0,14 0,35 0,51]' 563 [0,16 0,23 0,61]' 603 [0,17 0,36 0,47]'
484 [0,13 0,21 0,66]' 524 [0,14 0,36 0,5]' 564 [0,16 0,24 0,6]' 604 [0,17 0,37 0,46]'
485 [0,13 0,25 0,62]' 525 [0,14 0,37 0,49]' 565 [0,16 0,25 0,59]' 605 [0,17 0,38 0,45]'
486 [0,13 0,26 0,61]' 526 [0,14 0,38 0,48]' 566 [0,16 0,26 0,58]' 606 [0,17 0,39 0,44]'
487 [0,13 0,27 0,6]' 527 [0,14 0,39 0,47]' 567 [0,16 0,27 0,57]' 607 [0,17 0,4 0,43]'
488 [0,13 0,28 0,59]' 528 [0,14 0,4 0,46]' 568 [0,16 0,28 0,56]' 608 [0,17 0,41 0,42]'
489 [0,13 0,29 0,58]' 529 [0,14 0,41 0,45]' 569 [0,16 0,29 0,55]' 609 [0,17 0,2 0,63]'
490 [0,13 0,3 0,57]' 530 [0,14 0,42 0,44]' 570 [0,16 0,3 0,54]' 610 [0,17 0,19 0,64]'
491 [0,13 0,31 0,56]' 531 [0,14 0,43 0,43]' 571 [0,16 0,31 0,53]' 611 [0,18 0,18 0,64]'
492 [0,13 0,32 0,55]' 532 [0,15 0,15 0,7]' 572 [0,16 0,32 0,52]' 612 [0,18 0,2 0,62]'
493 [0,13 0,33 0,54]' 533 [0,15 0,16 0,69]' 573 [0,16 0,33 0,51]' 613 [0,18 0,21 0,61]'
494 [0,13 0,34 0,53]' 534 [0,15 0,17 0,68]' 574 [0,16 0,34 0,5]' 614 [0,18 0,22 0,6]'
495 [0,13 0,35 0,52]' 535 [0,15 0,18 0,67]' 575 [0,16 0,35 0,49]' 615 [0,18 0,23 0,59]'
496 [0,13 0,36 0,51]' 536 [0,15 0,19 0,66]' 576 [0,16 0,36 0,48]' 616 [0,18 0,24 0,58]'
497 [0,13 0,37 0,5]' 537 [0,15 0,2 0,65]' 577 [0,16 0,37 0,47]' 617 [0,18 0,25 0,57]'
498 [0,13 0,38 0,49]' 538 [0,15 0,21 0,64]' 578 [0,16 0,38 0,46]' 618 [0,18 0,26 0,56]'
499 [0,13 0,39 0,48]' 539 [0,15 0,23 0,62]' 579 [0,16 0,39 0,45]' 619 [0,18 0,27 0,55]'
500 [0,13 0,4 0,47]' 540 [0,15 0,24 0,61]' 580 [0,16 0,4 0,44]' 620 [0,18 0,28 0,54]'
501 [0,13 0,41 0,46]' 541 [0,15 0,25 0,6]' 581 [0,16 0,41 0,43]' 621 [0,18 0,29 0,53]'
502 [0,13 0,42 0,45]' 542 [0,15 0,26 0,59]' 582 [0,16 0,42 0,42]' 622 [0,18 0,3 0,52]'
503 [0,13 0,43 0,44]' 543 [0,15 0,27 0,58]' 583 [0,16 0,21 0,63]' 623 [0,18 0,31 0,51]'
504 [0,14 0,14 0,72]' 544 [0,15 0,28 0,57]' 584 [0,16 0,2 0,64]' 624 [0,18 0,32 0,5]'
505 [0,14 0,15 0,71]' 545 [0,15 0,29 0,56]' 585 [0,16 0,19 0,65]' 625 [0,18 0,33 0,49]'
506 [0,14 0,16 0,7]' 546 [0,15 0,3 0,55]' 586 [0,17 0,17 0,66]' 626 [0,18 0,34 0,48]'
507 [0,14 0,17 0,69]' 547 [0,15 0,31 0,54]' 587 [0,17 0,18 0,65]' 627 [0,18 0,35 0,47]'
508 [0,14 0,18 0,68]' 548 [0,15 0,32 0,53]' 588 [0,17 0,21 0,62]' 628 [0,18 0,36 0,46]'
509 [0,14 0,19 0,67]' 549 [0,15 0,33 0,52]' 589 [0,17 0,22 0,61]' 629 [0,18 0,37 0,45]'
510 [0,14 0,2 0,66]' 550 [0,15 0,34 0,51]' 590 [0,17 0,23 0,6]' 630 [0,18 0,38 0,44]'
511 [0,14 0,21 0,65]' 551 [0,15 0,35 0,5]' 591 [0,17 0,24 0,59]' 631 [0,18 0,39 0,43]'
512 [0,14 0,24 0,62]' 552 [0,15 0,36 0,49]' 592 [0,17 0,25 0,58]' 632 [0,18 0,4 0,42]'
513 [0,14 0,25 0,61]' 553 [0,15 0,37 0,48]' 593 [0,17 0,26 0,57]' 633 [0,18 0,41 0,41]'
514 [0,14 0,26 0,6]' 554 [0,15 0,38 0,47]' 594 [0,17 0,27 0,56]' 634 [0,18 0,19 0,63]'
515 [0,14 0,27 0,59]' 555 [0,15 0,39 0,46]' 595 [0,17 0,28 0,55]' 635 [0,19 0,19 0,62]'
516 [0,14 0,28 0,58]' 556 [0,15 0,4 0,45]' 596 [0,17 0,29 0,54]' 636 [0,19 0,2 0,61]'
517 [0,14 0,29 0,57]' 557 [0,15 0,41 0,44]' 597 [0,17 0,3 0,53]' 637 [0,19 0,21 0,6]'
518 [0,14 0,3 0,56]' 558 [0,15 0,42 0,43]' 598 [0,17 0,31 0,52]' 638 [0,19 0,22 0,59]'
519 [0,14 0,31 0,55]' 559 [0,16 0,16 0,68]' 599 [0,17 0,32 0,51]' 639 [0,19 0,23 0,58]'
520 [0,14 0,32 0,54]' 560 [0,16 0,17 0,67]' 600 [0,17 0,33 0,5]' 640 [0,19 0,24 0,57]'
46
641 [0,19 0,25 0,56]' 684 [0,21 0,27 0,52]' 727 [0,23 0,35 0,42]' 770 [0,26 0,37 0,37]'
642 [0,19 0,26 0,55]' 685 [0,21 0,28 0,51]' 728 [0,23 0,36 0,41]' 771 [0,27 0,27 0,46]'
643 [0,19 0,27 0,54]' 686 [0,21 0,29 0,5]' 729 [0,23 0,37 0,4]' 772 [0,27 0,28 0,45]'
644 [0,19 0,28 0,53]' 687 [0,21 0,3 0,49]' 730 [0,23 0,38 0,39]' 773 [0,27 0,29 0,44]'
645 [0,19 0,29 0,52]' 688 [0,21 0,31 0,48]' 731 [0,24 0,24 0,52]' 774 [0,27 0,3 0,43]'
646 [0,19 0,3 0,51]' 689 [0,21 0,32 0,47]' 732 [0,24 0,25 0,51]' 775 [0,27 0,31 0,42]'
647 [0,19 0,31 0,5]' 690 [0,21 0,33 0,46]' 733 [0,24 0,26 0,5]' 776 [0,27 0,32 0,41]'
648 [0,19 0,32 0,49]' 691 [0,21 0,34 0,45]' 734 [0,24 0,27 0,49]' 777 [0,27 0,33 0,4]'
649 [0,19 0,33 0,48]' 692 [0,21 0,35 0,44]' 735 [0,24 0,28 0,48]' 778 [0,27 0,34 0,39]'
650 [0,19 0,34 0,47]' 693 [0,21 0,36 0,43]' 736 [0,24 0,29 0,47]' 779 [0,27 0,35 0,38]'
651 [0,19 0,35 0,46]' 694 [0,21 0,37 0,42]' 737 [0,24 0,3 0,46]' 780 [0,27 0,36 0,37]'
652 [0,19 0,36 0,45]' 695 [0,21 0,38 0,41]' 738 [0,24 0,31 0,45]' 781 [0,28 0,28 0,44]'
653 [0,19 0,37 0,44]' 696 [0,21 0,39 0,4]' 739 [0,24 0,32 0,44]' 782 [0,28 0,29 0,43]'
654 [0,19 0,38 0,43]' 697 [0,22 0,22 0,56]' 740 [0,24 0,33 0,43]' 783 [0,28 0,3 0,42]'
655 [0,19 0,39 0,42]' 698 [0,22 0,23 0,55]' 741 [0,24 0,34 0,42]' 784 [0,28 0,31 0,41]'
656 [0,19 0,4 0,41]' 699 [0,22 0,24 0,54]' 742 [0,24 0,35 0,41]' 785 [0,28 0,32 0,4]'
657 [0,2 0,2 0,6]' 700 [0,22 0,25 0,53]' 743 [0,24 0,36 0,4]' 786 [0,28 0,33 0,39]'
658 [0,2 0,21 0,59]' 701 [0,22 0,26 0,52]' 744 [0,24 0,37 0,39]' 787 [0,28 0,34 0,38]'
659 [0,2 0,22 0,58]' 702 [0,22 0,27 0,51]' 745 [0,24 0,38 0,38]' 788 [0,28 0,35 0,37]'
660 [0,2 0,23 0,57]' 703 [0,22 0,28 0,5]' 746 [0,25 0,25 0,5]' 789 [0,28 0,36 0,36]'
661 [0,2 0,24 0,56]' 704 [0,22 0,29 0,49]' 747 [0,25 0,26 0,49]' 790 [0,29 0,29 0,42]'
662 [0,2 0,25 0,55]' 705 [0,22 0,3 0,48]' 748 [0,25 0,27 0,48]' 791 [0,29 0,3 0,41]'
663 [0,2 0,26 0,54]' 706 [0,22 0,31 0,47]' 749 [0,25 0,28 0,47]' 792 [0,29 0,31 0,4]'
664 [0,2 0,27 0,53]' 707 [0,22 0,32 0,46]' 750 [0,25 0,29 0,46]' 793 [0,29 0,32 0,39]'
665 [0,2 0,28 0,52]' 708 [0,22 0,33 0,45]' 751 [0,25 0,3 0,45]' 794 [0,29 0,33 0,38]'
666 [0,2 0,29 0,51]' 709 [0,22 0,34 0,44]' 752 [0,25 0,31 0,44]' 795 [0,29 0,34 0,37]'
667 [0,2 0,3 0,5]' 710 [0,22 0,35 0,43]' 753 [0,25 0,32 0,43]' 796 [0,29 0,35 0,36]'
668 [0,2 0,31 0,49]' 711 [0,22 0,36 0,42]' 754 [0,25 0,33 0,42]' 797 [0,3 0,3 0,4]'
669 [0,2 0,32 0,48]' 712 [0,22 0,37 0,41]' 755 [0,25 0,34 0,41]' 798 [0,3 0,31 0,39]'
670 [0,2 0,33 0,47]' 713 [0,22 0,38 0,4]' 756 [0,25 0,35 0,4]' 799 [0,3 0,32 0,38]'
671 [0,2 0,34 0,46]' 714 [0,22 0,39 0,39]' 757 [0,25 0,36 0,39]' 800 [0,3 0,33 0,37]'
672 [0,2 0,35 0,45]' 715 [0,23 0,23 0,54]' 758 [0,25 0,37 0,38]' 801 [0,3 0,34 0,36]'
673 [0,2 0,36 0,44]' 716 [0,23 0,24 0,53]' 759 [0,26 0,26 0,48]' 802 [0,3 0,35 0,35]'
674 [0,2 0,37 0,43]' 717 [0,23 0,25 0,52]' 760 [0,26 0,27 0,47]' 803 [0,31 0,31 0,38]'
675 [0,2 0,38 0,42]' 718 [0,23 0,26 0,51]' 761 [0,26 0,28 0,46]' 804 [0,31 0,32 0,37]'
676 [0,2 0,39 0,41]' 719 [0,23 0,27 0,5]' 762 [0,26 0,29 0,45]' 805 [0,31 0,33 0,36]'
677 [0,2 0,4 0,4]' 720 [0,23 0,28 0,49]' 763 [0,26 0,3 0,44]' 806 [0,31 0,34 0,35]'
678 [0,21 0,21 0,58]' 721 [0,23 0,29 0,48]' 764 [0,26 0,31 0,43]' 807 [0,32 0,32 0,36]'
679 [0,21 0,22 0,57]' 722 [0,23 0,3 0,47]' 765 [0,26 0,32 0,42]' 808 [0,32 0,33 0,35]'
680 [0,21 0,23 0,56]' 723 [0,23 0,31 0,46]' 766 [0,26 0,33 0,41]' 809 [0,32 0,34 0,34]'
681 [0,21 0,24 0,55]' 724 [0,23 0,32 0,45]' 767 [0,26 0,34 0,4]' 810 [0,33 0,33 0,34]'
682 [0,21 0,25 0,54]' 725 [0,23 0,33 0,44]' 768 [0,26 0,35 0,39]'
683 [0,21 0,26 0,53]' 726 [0,23 0,34 0,43]' 769 [0,26 0,36 0,38]'
47