sexta-feira, agosto 22, 2008

grafos, distribuições e conjuntos de dados

agradecia todo o tipo de informação (onde posso encontrar, por exemplo) sobre:

- software para geração de grafos / redes;
- programa para gerar conjuntos de dados segundo uma dada distribuição (supostamente o excel faz isso, mas não sei como);
- conjuntos de dados (preferencialmente pequenos), com distribuição normal, de poisson, exponencial e de Erlang.

obrigado,
sois uns queridos!

10 Bitaites:

parreirex mandou o bitaite...

adenda:
o maple gera conjuntos de dados, mas eu queria que fossem valores inteiros...

chica de moebius mandou o bitaite...

já experimentaste o matlab?
eu já usei o matlab para implementar algoritmos de redes mas não as representei graficamente, só usei matrizes e listas...
no entanto, parece-me que o matlab pode representar um grafo a partir da sua matriz - vê aqui.
o matlab gera valores (pseudo)aleatórios, talvez gere valores segundo uma determinada distribuição mas isso não te sei dizer (teria que ir procurar...).
(eu tenho a versão 7 do matlab caso queiras).

uma observação óbvia em relação ao maple:
deves conseguir obter valores inteiros a partir dos valores reais, nem que seja truncando ou arredondando por excesso (isto talvez afecte a distribuição mas já não sei dizer - não me recordo desses promenores).

beijitos e bom trabalho!

Anónimo mandou o bitaite...

mmm em Matlab acho q a tarefa de gerar dados não é dificil...eu já gerei toy data (dados gerados artificialmente) com distribuição normal usando essa plataforma, nc experimentei gerar só inteiros mas posso experimentar,imagino que nas outras distribuições não seja muito diferente... Amanhã eu vejo se sou capaz, nesse caso mando-te o codigo

Anónimo mandou o bitaite...

O que quer dizer isso de dados pequenos?

Poucos dados? pertencentes a um espaço de dimensão reduzida? ou contidos numa esfera de centro na origem e com raio pequeno?

Anónimo mandou o bitaite...

http://www.mathwave.com/articles/random-numbers-excel-worksheets.html

Está um free trial que permite gerar dados em Excel com quase totalidade das distribuições que sugeriste...Mas cheira-me que essa parte de ser em inteiros pode complicar... Parece-me que o matlab só pode ajudar no caso normal e eu não sei como contornar isso dos inteiros

Anónimo mandou o bitaite...

mmmm, tive antes de me deitar uma ideia que não sei até que ponto pode ser util mas...As leis de Poison e a Normal (pelo menos) são estáveis para a Soma ( a soma de normais é normal, a soma de duas Poison tb etc) desta maneira se tu gerares números com lei normal e surgirem números com 4 casas decimais podes multiplicar esses números por 10000( equivalente a somar 10000 dist's X) e obtens sequência de inteiros (mas aí se calhar não são pequenos).

Ger mandou o bitaite...

@ Parreira


Para gerar números aleatórios em Excel (por exemplo números que sigam uma N(0,1)):

1. Numa coluna (a coluna "A" aplica-se a função "=rand()" às celulas.
2. Na coluna a seguir aplica-se a função "=norminv (A1;0;1)" e assim sucessivamente.

Tens assim uma coluna com valores pseudo-aleatórios que seguem a lei normal com média igual a 0 e desvio pdrão igual a 1.

Para as outras leis é parecido.

parreirex mandou o bitaite...

obrigado!

dados pequenos referia-me ao tamanho do conjunto de dados. cerca de 20/30, o minimo para identificar uma distribuição. os valores dos dados tb deverão ser pequenos, pois representam o grau de cada nó de um grafo (logo, inferiores a 20/30).
acho que vou optar pelos arredondamentos, embora devendo alterar um pouco a distribuição, mas tb não preciso de algo muito exacto.

tks, again
besos.

chica de moebius mandou o bitaite...

telmo,
o mathematica também permite representar grafos e árvores - vê aqui na secção Graphs and Trees.
além destas funções de Matemática Discreta, tem algumas funções de Optimização Combinatória que não sei se te interessa...
beijitos

chica de moebius mandou o bitaite...

o mathematica também gera distribuições de poisson inteiras mas as distribuições normais tém que ser com números reais...
(expande todos os itens para veres os exemplos e as combinações possíveis das funções...)
já experimentei e
RandomInteger[PoissonDistribution[2], 5] funciona - {1, 3, 3, 1, 1} - mas RandomInteger[NormalDistribution[0, 1], 5] dá erro - "The distribution NormalDistribution[0,1] is defined on a set of real values. Use RandomReal instead..."