Arvin
Arvin
خواندن ۲ دقیقه·۱۰ ماه پیش

خلاصه‌ای بر الگوریتم Boids

گروهی از پرندگان که می‌شود توسط الگوریتم Boid مدل ساری شود - برگرفته از سایت stanford
گروهی از پرندگان که می‌شود توسط الگوریتم Boid مدل ساری شود - برگرفته از سایت stanford

الگوریتم Boids برنامه‌ای است که زندگی مصنوعی را می‌سازد. این الگوریتم توسط آقای Craig Reynolds در سال ۱۹۸۶ معرفی شده است و پر زدن پرنده‌ها را بصورت گروهی شبیه سازی می‌کند. در حقیقت اسم Boid خلاصه‌ای از اسم "bird-oid object - چیز پرنده‌ای" که به یک چیز پرنده مانند اشاره می‌کند. این مفهوم نمونه‌ای از یک مفهوم بسیار کلی است که به گونه‌ای مدل های مختلف آن مطرح شده است.


توضیح مدل

همانطور که شبیه سازهای مصنوعی عمل می‌کنند، الگوریم Boids یک نمونه از حرکت برآمدگی است! درسته، سختی این الگوریتم از برهمکنش های تک شکل‌ها که در انیجا همان Boid ها است، می‌باشد که از چند قانون ساده پیروی می‌کنند. این قوانین در زیر آمده است:

  • جدایی پذیری: این امکان برای این تبیع شده که از ازدحام بسیار زیاد گروهی پرنده‌ها پرهیز شود.
قانون جدایی پذیری
قانون جدایی پذیری
  • شکل گیری: بطوری به مرکز میانگین گروهی پرنده‌ها تمایل پیدا می‌کنند.
قانون شکل گیری
قانون شکل گیری
  • یکپارچگی: تمایل حرکت به سمت موقعیت میانگین (مرکز جرم) گروهی پرنده‌ها.
قانون یکپارچگی
قانون یکپارچگی

که البته این قوانین کافی نیستند و میتوانند قوانین دیگری هم مانند جدانگری سختی و هدف گردی.

حرکت پرنده‌ها می‌تواند بصورت آشفته وار (گروه های جدا شده از هم و رفتار وحشیانه) یا قانونمند داشته باشد.

چارچوب Boid در گرافیک کامپیوتری استفاده می‌شود، که یک واقعیت نگاره از گروه‌ها و دیگر موجودات را در اختیار قرار می‌دهد. که البته میتوان در بازی Half-Life که در سال 1998 ساخته شد اشاره کرد.

مدل Boid در حقیقت در ساختار اپلیکیشن‌های دیگر به کار رفته است. همانند برنامه به کار رفته در ایستگاه‌های رادیویی چند کاناله اینترنتی.

همچنین توصیه می‌کنم مطالبی همانند Conway's Game of Life و Swarm intelligence را تحقیق و مطالعه کنید.

این مقاله صرفا ترجمه‌ و خلاصه‌ای از ویکی Boid است.


بخش عملی داستان

خب برای اینکه از ساختار این الگوریتم متوجه بشیم میتونیم به برنامه زیر که به زبان Rust نوشته شده و از موتور Amethyst game engine استفاده می‌کند.

برای شروع کار قدم به قدم میریم جلو:

  1. دستور زیر را وارد کنید:
git clone https://github.com/henninglive/boids-rs.git

۲. پیش نیازها در سیستم عامل Debian/Ubuntu با دستور زیر وارد کنید:

apt install gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev

۳. مطمین شوید که Rust 1.47.0 را در اختیار دارید:

rustup default 1.47.0

۴. برنامه را بسازید:

cargo build --release

۵. فایل در پوشه زیر قرار می‌گیرد:

target/release/boids

۶. میتوانید از دستور زیر هم استفاده کنید:

cargo run --release

خب کار ما اینجا تمام شد :) امیدوارم از مفهوم و عمل خوشتون آمده باشد. نظر شما راجع به این خلاصه چیست؟

الگوریتمشبیه سازیخلاصه
شاید از این پست‌ها خوشتان بیاید