Таємниця мурмарування
Мурмарування – це аеродинамічна демонстрація тисяч європейських старців (Sturnus vulgaris) на заході сонця. Весь зграйний розгортається, пульсує та змінює форму, ніби жива рідина – проте жодна окрема птах не керує іншими. Вчені були спанляті протягом століть; ранні припущення включали телепатію, сигнали тиску повітря або птаха-володаря, який давав безмовні накази. Справжня відповідь, виявлена в 1980-х роках, набагато елегантніша: кожна птах відстежує лише семи найближчих сусідів і слідує трьом локальним правилам. Глобальна краса виникає з повністю місцевої інформації.
Три прості правила
У 1986 році дослідник комп’ютерної графіки Крейг Рейнольдс створив програму, яку він назвав Boids (скоро від «bird-oids»), яка відтворювала зграйність лише за допомогою трьох правил керування: розділення (відхилятися від інших особин, які надто близько, щоб уникнути зіткнень), узгодження (відхилятися, щоб відповідати середній напрямку та швидкості сусідніх особин) і згуртованість (відхилятися до середньої позиції сусідніх особин, щоб залишатися разом як група). Ці три правила самі по собі достатні для відтворення зграйного поведінки риб, роїв комах і табунів тварин – стаття Рейнольдса 1987 року отримала Академічну та технічну нагороду за її використання в голлівудських фільмах.
Математика за лаштунками
Кожен бойд має вектор положення p та вектор швидкості v. На кожному кроці часу обчислюються та додаються три компоненти прискорення, а потім вони обмежуються максимальною швидкістю:
сила розділення += (p_self − p_j) / |p_self − p_j|² для кожного близького сусіда j сила орієнтації = середнє(v_neighbours) − v_self сила згущення = середнє(p_neighbours) − p_self
v_self += separation_force·W_SEP + alignment_force·W_ALI + cohesion_force·W_COH |v_self| обмежується MAX_SPEED, а потім p_self += v_self
Кожна сила масштабується за допомогою власного вагового коефіцієнта перед тим, як їх сумувати – налаштування цих трьох ваг та характер зграї змінюється від щільного угрупування до розрідженого блукання.
separation_force += (p_self − p_j) / |p_self − p_j|² for each close neighbour j alignment_force = mean(v_neighbours) − v_self cohesion_force = mean(p_neighbours) − p_self v_self += separation_force·W_SEP + alignment_force·W_ALI + cohesion_force·W_COH clamp |v_self| to MAX_SPEED, then p_self += v_self
Емердженція: більше, ніж сума частин
Тісна група птахів є класичним прикладом емердженції – складної колективної поведінки, яка виникає завдяки простим індивідуальним правилам без централізованого контролю. Ціла група демонструє властивості, яких жоден окремий бойд не має. Той самий феномен лежить в основі вирішення проблем колоніями мурах за допомогою феромонних шляхів, утворення та розчинення заторів хвилями без будь-яких аварій, а також виробництва свідомості мільярдами індивідуально несвідомих нейронів мозком. Емердженція – це феномен; зграйний інтелект – це інженерія, яка навмисно використовує емердженцію для вирішення проблем.
Практичне застосування
Байди та концепція зграйного інтелекту знаходять застосування далеко за межами біології. Комп'ютерна графіка та ігри використовують їх для створення реалістичних натовпів та шкіл риб. Зграї безпілотників, що використовуються у військових та рятувальних операціях, координуються за допомогою правил, подібних до байдів, і не мають центрального контролера, що дозволяє зграї вижити навіть при відмові одного з елементів. Роботи для складів (наприклад, флот Amazon Kiva) орієнтуються за допомогою емерджентної координації, натхненної поведінкою мурах, а оптимізація роїв частинок використовує подібні до байдів стратегії пошуку для вирішення задач в інженерії та машинного навчання.
Frequently asked questions
Скільки сусідів насправді відстежує птах під час зграї?
Кожен птах відстежує лише сім-десят п’ять найближчих сусідів, а не всю зграю. Кожен птах дотримується трьох локальних правил — розділення, вирівнювання та згуртованості, використовуючи лише цей невеликий локальний огляд, і велика масштабна мурчання з'являється в результаті цих чисто локальних взаємодій без лідера та глобального плану.
Які три правила алгоритму Boids?
Розділення: повертайтеся від сусідів, які занадто близько, щоб уникнути зіткнень. Вирівнювання: повертайтеся, щоб відповідати середній напрямку та швидкості сусідніх боїдів. Згуртованість: рухайтеся до середньої позиції сусідніх боїдів, щоб залишатися разом. Крейг Рейлз об'єднав усі три в одну програму керування в 1986 році.
Що таке емерджентність і як це стосується зграювання?
Емерджентність — це складна колективна поведінка, яка виникає внаслідок простих індивідуальних правил без централізованого контролю. Зграя проявляє властивості — наприклад, колискаючий, пульсуючий вигляд — які жоден окремий птах не має сам по собі. Античні колонії, затори та навіть маршрутизація інтернету демонструють той самий феномен: прості локальні правила, складна глобальна поведінка.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію the simulation