Observatório de dados/Multiconjuntos

Fonte: Wikiversidade
Tutorial para a introdução de conceitos e convenções adotadas no Observatório de Dados, para se expressar formalmente multiconjuntos.

Multiconjuntos finitos são de grande utilidade para a representação de dados estatísticos por serem mais simples que pares ordenados, a ao mesmo tempo terem uma representação direta nos pares elemento-frequência de uma tabela de dados brutos tradicional de Estatística.

Em algumas linguagens de programação os multiconjuntos são também denominados bags (sacolas).

Notação e definições[editar | editar código-fonte]

... convenções utilizadas no Observatório...

  • prefixo Multi nas funções usuais de conjunto, indica que se deve esperar um multiconjunto como retorno. Por exemplo MultiInstancesOf(X)
  • Expressões de definição entre colchetes ao invés de chaves.

Exemplos numéricos[editar | editar código-fonte]

Apesar de não serem sempre os mais didáticos, os exemplos numéricos são os mais simples e bem documentados.

Sequências de inteiros[editar | editar código-fonte]

Talvez a mais abrangente e bem documentada fonte de "datasets matemáticos" seja a "The On-Line Encyclopedia of Integer Sequences" (OEIS.org).

Como o multiconjunto não requer preservação da ordem, na descrição extensiva pode-se destacar as multiplicidades ao listar na ordem numérica.

Os primeiros membros das séries se prestam como "assinaturas", de modo que a OIES os fornece e cataloga com precisão. Multiconjuntos extraídos destes primeiros termos são portanto fáceis de conseguir e bastante precisos na sua definição. A expressão é livre: preservando a ordem original visualiza-se a assinatura, colocando na ordem numérica destacam-se as multiplicidades.

A descrição intensiva do multiconjunto pode ser feita da mesma maneira que a descrição intensiva de um conjunto, declarando-se o conjunto universo e extração de elementos:
X = [∀x∈ℕ, ∃k∈ℕ | min<k≤max ∧ (k,x) ∈ NomeDaSequencia ].

Primeiros 10 termos da série de Fibonacci, OEIS:A000045
Fibo10 = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34].
Fibo10 = [∀x∈ℕ, ∃k∈ℕ | 0<k≤9 ∧ (k,x) ∈ OEIS:A000045].
Primeiros 60 números da série de períodos de Pissano, OEIS:A001175
Pis60 = [1, 3, 8, 6, 12, 16, 16, 18, 18, 20, 20, 24, 24, 24, 24, 24, 24, ..., 120, 120, 120].
Multiplicidades m(X,16)=2; m(X,24)=6; etc. Descrição intensiva do mesmo multiconjunto:
Pis60 = [∀x∈ℕ, ∃k∈ℕ | 0<k≤60 ∧ (k,x) ∈ OEIS:A001175].

Curiosidades:

  • repare que nas definições intensivas é usada a referência à listagem, por exemplo https://oeis.org/A001175/list
  • garantia de DISTINCT em OEIS:A005132 faz com que conjunto e multiconjunto sejam equivalentes.

Exemplos de operações:

Simples com Fibo10 e Pis60
  
   

Clássicos[editar | editar código-fonte]

Um dos exemplos mais simples e tradicionais é o multiconjunto dos fatores primos de um número . Aqui, os elementos são os divisores de . Por exemplo, o número 120 tem a fatoração

    repredsentados pelo multiconjunto [2, 2, 2, 3, 5].

De modo que não importa a ordem mas importa a multiplicidade. A representação em multiconjunto traz toda informação necessária sobre os fatores.

Outro exemplo clássico é a representação das soluções de uma equação algébrica. Uma equação quadrática, por examplo, tem 2 soluções, que eventualmente pode coincidir de serem o mesmo número. Assim os multiconjuntos [3,0; 5,1] ou [4;4] representam melhor as soluções do que conjuntos.

Dados empíricos[editar | editar código-fonte]

... ver exemplos clássicos ... séries temporais (ex. vazão de um rio) e atemporais (ex. temperaturas amostradas de uma mesma superfície num dado instante)... Dados aleatórios (resultados de loteria)...


Analogias na modelagem de sistemas[editar | editar código-fonte]

Conceitua-se "estado" nas diversas áreas da Física e da Computação de forma ligeiramente adaptada a cada contexto: estado de um sistema computacional, estado de um sistema termodinâmico, estados da matéria, estado de um sistema quântico, estado do banco de dados, e outros. São semelhantes, mas infelizmente não temos um conceito simples e unificado para "estado do sistema". Em sistemas dinâmicos costuma-se descrever o estado do sistema como uma fotografia do mesmo. Se fotos tiradas em momentos diferentes resultarem ser fotos iguais, dizemos que é o sistemna voltou ao mesmo estado. Num banco de dados não é diferente, se ele muda com o tempo, podemos "fotografar" através de um backup da base de dados inteira. Se conteúdo dos backups for igual, dizemos que a base se encontra no mesmo estado.

A descrição de sistemas do mundo real depende também da escolha, de como modelamos e construímos nossas abstrações. Num sistema de partículas, os resultados poderão ser completamente diferentes se as consideramos como totalmente distinguíveis ou não. Os efeitos dessa escolha também refletem nas descrição dos estados do sistema.

O mesmo ocorre com a modelagem de conjuntos: se as entidades do mundo real candidatos a serem modelados como elementos do conjunto são ou não disnguíveis, pode fazer uma grande diferença. Para dar conta dessa sutileza existe uma opção do multiconjunto. O análogo do conceito de "estado" para um conjunto é a quantidade elementos, ou seja, a sua cardinalidade — e no caso do multiconjunto a cardinalidade é a soma das multiplicidades. A modelagem do mundo real precisa preservar a essência do que se abstraiu: apesar de intuitiva, a decisão sobre modelar um dado aspecto da realidade por conjuntos ou multiconjuntos, pode ser fundamental.

Outros exemplos[editar | editar código-fonte]

...