понедельник, 9 января 2017 г.

[prog] В склерозник: три основных принципа в симуляции Boids от Крейга Рейнольдса

Когда-то в начале 2000-х в импортном документальном фильме услышал про попытки моделирования поведения птичьих стай (а так же косяков рыб). В фильме сказали, что ученые пришли к выводу, что поведение птицы в стае описывается тремя простыми правилами. Которые, однако, приводят к слабопредсказуемому поведению всей стаи в целом.

С тех пор время от времени я забывал про эти правила, вспоминал, искал в Интернетах, иногда находил, иногда нет. Сейчас вот вновь нашел, решил зафиксировать в склерознике. Речь, как оказалось, шла о симуляции поведения птичьих стай, под названием Boids. Эту симуляцию в середине 1980-х разработал Крейг Рейнольдс. Вот ссылка на статью в Wiki на эту тему.

А вот эти самые три простых правила:

  • каждая птица стремиться избежать столкновения с другими птицами стаи;
  • каждая птица стремиться двигаться в том же направлении, что и находящиеся неподалеку от нее птицы;
  • птицы стремятся двигаться на одинаковом расстоянии друг от друга.

Чем эта тема интересна мне? А тем, что когда в программе создается большое количество однотипных акторов, каждый из которых, вроде как работает по вполне себе простым и понятным правилам, предсказать поведение всей программы в какой-то определенный момент времени оказывается не так-то просто. И объяснять этот феномен на примере простых правил поведения птиц в стае оказывается очень удобно.

Комментариев нет: