Grupo - BOIDS: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Sem resumo de edição
Linha 2: Linha 2:
Desenvolvido por Craig Reynolds em 1986, é um algoritmo que busca, por meio de regras de comportamento, reproduzir o comportamento sincronizado de grupos de animais. Por exemplo manadas de animais terrestres, cardumes de peixes, bando de pássaros e etc. O nome BOID corresponde ao encurtamento da expressão em inglês ''“bird-oid object”'', que se refere a um objeto “tipo pássaro”. Seu trabalho foi publicado em 87 sob o título original, em inglês, ''"Flocks, herds and schools: A distributed behavioral model"''.
Desenvolvido por Craig Reynolds em 1986, é um algoritmo que busca, por meio de regras de comportamento, reproduzir o comportamento sincronizado de grupos de animais. Por exemplo manadas de animais terrestres, cardumes de peixes, bando de pássaros e etc. O nome BOID corresponde ao encurtamento da expressão em inglês ''“bird-oid object”'', que se refere a um objeto “tipo pássaro”. Seu trabalho foi publicado em 87 sob o título original, em inglês, ''"Flocks, herds and schools: A distributed behavioral model"''.
O modelo base de Craig já fora utilizado para diversas implementações e estudos. Como estudo comportamental de medo, interação entre animais via olfato modelando feromônios, mudança de liderança de um bando, dentre muitas outras aplicações interessantes.
O modelo base de Craig já fora utilizado para diversas implementações e estudos. Como estudo comportamental de medo, interação entre animais via olfato modelando feromônios, mudança de liderança de um bando, dentre muitas outras aplicações interessantes.
=Motivação=
O movimento de animais em sincronia é extremamente complexo e é chave para sua sobrevivência em bando. Peixes, pássaros e mamíferos terrestres tem esse tipo de comportamento principalmente no que diz respeito a defesa em momentos em que sentem em perigo. A concentração intimida e o movimento confunde seus predadores. Além de ser extremamente prazeroso assistir um bando de pássaros ou um cardume de peixes em sua dança sincronizada.


=O Algoritmo=
=O Algoritmo=
 
Inicialmente as partículas BOIDs são geradas aleatoriamente com uma posição e velocidade aleatória. Após é dado um passo temporal e, para cada BOID, são contados os objetos vizinhos que estão dentro de um raio R de interação e em seguida computadas e atualizadas as seguintes regras:
O algoritmo leva em consideração três regras básicas.


1. Separação: interação de repulsão entre os indivíduos para evitar superconcentração local (ou no caso extremo uma superposição).
1. Separação: interação de repulsão entre os indivíduos para evitar superconcentração local (ou no caso extremo uma superposição).
Linha 11: Linha 13:
[[Arquivo:Rule_separation.gif]]
[[Arquivo:Rule_separation.gif]]


2. Alinhamento: a velocidade média dos parceiros próximos influencia o vetor velocidade do objeto, fazendo-o ter um comportamento parecido com sua vizinhança.
2. Alinhamento (vetor velocidade): a velocidade média dos parceiros próximos influencia o vetor velocidade do objeto, fazendo-o ter um comportamento parecido com sua vizinhança.


[[Arquivo:Rule_alignment.gif]]
[[Arquivo:Rule_alignment.gif]]


3. Coesão: os boids tendem a se mover na direção do centro de massa de seus vizinhos próximos.
3. Coesão: Os BOIDs interagentes tem um potencial de mola entre si, fazendo com que sua tendência é mover-se em direção ao centro de massa do grupo. Calculando primeiramente o centro de massa (CM) das partículas vizinhas utiliza-se da força elástica para simular uma mola entre o objeto e o CM da vizinhança.
 
<math>V_j = \frac{C (x_j - x_{CM})}{L}</math>


[[Arquivo:Rule_cohesion.gif]]
[[Arquivo:Rule_cohesion.gif]]
Linha 25: Linha 29:
Para reproduzir melhor um ser vivo, um pequeno ruído compõe a velocidade. Isso faz com que tenhamos uma maior flutuação no caminho que os boids traçam.
Para reproduzir melhor um ser vivo, um pequeno ruído compõe a velocidade. Isso faz com que tenhamos uma maior flutuação no caminho que os boids traçam.


=Motivação=
 
O movimento de animais em sincronia é extremamente complexo e é chave para sua sobrevivência em bando. Peixes, pássaros e mamíferos terrestres tem esse tipo de comportamento principalmente no que diz respeito a defesa em momentos em que sentem em perigo. A concentração intimida e o movimento confunde seus predadores. Além de ser extremamente prazeroso assistir um bando de pássaros ou um cardume de peixes em sua dança sincronizada.


=Desenvolvimento em C=
=Desenvolvimento em C=

Edição das 13h59min de 21 de janeiro de 2018

Contexto Histórico

Desenvolvido por Craig Reynolds em 1986, é um algoritmo que busca, por meio de regras de comportamento, reproduzir o comportamento sincronizado de grupos de animais. Por exemplo manadas de animais terrestres, cardumes de peixes, bando de pássaros e etc. O nome BOID corresponde ao encurtamento da expressão em inglês “bird-oid object”, que se refere a um objeto “tipo pássaro”. Seu trabalho foi publicado em 87 sob o título original, em inglês, "Flocks, herds and schools: A distributed behavioral model". O modelo base de Craig já fora utilizado para diversas implementações e estudos. Como estudo comportamental de medo, interação entre animais via olfato modelando feromônios, mudança de liderança de um bando, dentre muitas outras aplicações interessantes.

Motivação

O movimento de animais em sincronia é extremamente complexo e é chave para sua sobrevivência em bando. Peixes, pássaros e mamíferos terrestres tem esse tipo de comportamento principalmente no que diz respeito a defesa em momentos em que sentem em perigo. A concentração intimida e o movimento confunde seus predadores. Além de ser extremamente prazeroso assistir um bando de pássaros ou um cardume de peixes em sua dança sincronizada.

O Algoritmo

Inicialmente as partículas BOIDs são geradas aleatoriamente com uma posição e velocidade aleatória. Após é dado um passo temporal e, para cada BOID, são contados os objetos vizinhos que estão dentro de um raio R de interação e em seguida computadas e atualizadas as seguintes regras:

1. Separação: interação de repulsão entre os indivíduos para evitar superconcentração local (ou no caso extremo uma superposição).

Rule separation.gif

2. Alinhamento (vetor velocidade): a velocidade média dos parceiros próximos influencia o vetor velocidade do objeto, fazendo-o ter um comportamento parecido com sua vizinhança.

Rule alignment.gif

3. Coesão: Os BOIDs interagentes tem um potencial de mola entre si, fazendo com que sua tendência é mover-se em direção ao centro de massa do grupo. Calculando primeiramente o centro de massa (CM) das partículas vizinhas utiliza-se da força elástica para simular uma mola entre o objeto e o CM da vizinhança.

Rule cohesion.gif

Regras complementares e mais complexas como desviar de objetos e perseguir objetivos podem ser adicionadas para diferentes estudos.

Inicialmente são sorteadas posições e velocidades para os objetos. As regras são então calculadas a cada loop de passo. Embora cada boid tenha liberdade sobre todo o espaço descrito, o seu comportamento é influenciado apenas por outros dentro de uma região circular centrada no objeto dita raio de interação. Após o cálculo das novas posições e velocidades é somado um incremento de tempo e o algoritmo recomeça.

Para reproduzir melhor um ser vivo, um pequeno ruído compõe a velocidade. Isso faz com que tenhamos uma maior flutuação no caminho que os boids traçam.


Desenvolvimento em C

Este trabalho busca, em suas etapas, reproduzir um cardume de peixes em seu padrão síncrono de movimento e, posteriormente, na presença de um ou mais predadores.

Coesão




Separação



Alinhamento




Resultados e Conclusões

Referências

  • https://en.wikipedia.org/wiki/Boids
  • Reynolds, C. W. (1987) Flocks, Herds, and Schools: A Distributed Behavioral Model, in Computer Graphics, 21(4) (SIGGRAPH '87 Conference Proceedings) pages 25-34.