دوره های مرتبط

الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

تصویر artificial-intelligence-network-simulation-ns3_5613 الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

الگوریتم های هوش مصنوعی و یادگیری ماشین در NS3

اگر بخواهیم الگوریتم های هوش مصنوعی و یادگیری ماشین را در پروتکل ها و الگوریتم های شبکه سفارشی خود تحت نرم افزار NS3 پیاده سازی کنیم، راه مستقیم این است که یک چارچوب AI/ML/DL موجود را با آن ترکیب کنیم. اگر یک چارچوب AI/ML مبتنی بر زبان سی پلاس پلاس در دسترس باشد، می توان آن را با کد های زبان C++ در نرم افزار شبیه ساز NS3 ادغام کرد. اما چارچوب های هوش مصنوعی و یادگیری ماشین (AI/ML) موجود بسیار عظیم و سنگین هستند و در طول زمان نیز به سرعت در حال بهبود می باشند. در کنار آنها، فریم ورک های محبوبی نیز وجود دارند که مبتنی بر زبان پایتون بوده و ادغام با نرم افزار NS3 را به صورت بومی سخت می کنند. بنابراین به جای ترکیب مستقیم چنین چارچوب های AI/ML سنگین با شبیه ساز NS3 ، ابزار NS3-AI Model راهی برای برقراری ارتباط با چارچوب های AI/ML مستقل از شبیه ‌ساز NS3 را فراهم می سازد. در ادامه این مقاله آموزشی، فیلم آموزشی ماژول ns3-ai نیز قرار داده شده که اطلاعات مفید و کاربری را ارائه می کند.

ویژگی های NS3-AI

ابزار ns3-ai خود به تنهایی شامل هیچ الگوریتم هوش مصنوعی نیست و به چارچوب خاصی متکی نخواهد بود. این فریم ورک فقط راه های ارتباطی و استفاده از فریم ورک های هوش مصنوعی را که به صورت جداگانه در سیستم نصب می شود را فراهم می کند. ویژگی های زیر توسط توسعه دهندگان آن بیان شده است.

  • ماژول تعامل داده با کارایی بالا (با استفاده از حافظه مشترک)
  • یک رابط سطح بالا برای الگوریتم های هوش مصنوعی مختلف
  • ادغام آسان با سایر چارچوب های هوش مصنوعی

نصب NS3 تحت chroot Jail

هیچ نسخه خاصی توسط توسعه دهندگان ns3-ai ذکر نشده است. در این مقاله آموزشی ما نصب را با نصب قبلی NS3-33 که تحت chroot jail بود انجام می دهم. به طور خاص ما قصد دارم از نسخه ns3.33 استفاده کنیم که قبلا ابزار ms-van3t را بر روی آن نصب کردیم. زیرا در آینده ممکن است سعی کنیم از برخی گره های ns3-ai در شبیه سازی VANET استفاده کنیم. امیدواریم این روش نصب با نسخه های بالاتر NS3 نیز کار کند. بنابراین می توان قبل از نصب ماژول ns3-ai ، هر روش نصبی را که صفحه اختصاصی ماژول ns3-ai در گیت هاپ به آدرس زیر ارائه داده، به سادگی مبتنی بر chroot jail نیز دنبال کرد.

https://github.com/hust-diangroup/ns3-ai

مراحل نصب ماژول ns3-ai

ابتداد به پوشه نصب ns-3 خود را با contrib تغییر دهید.

سپس مخزن ns3-ai را در پوشه نصب ns-3 که contrib انتخاب شده، کلون کنید.

تصویر زیر کلون موفق آمیز از مخزن را نشان می دهد.

تصویر ai-and-ml-algorithms-ns3-simulator_7325_1 الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

اکنون build را از دایرکتوری ریشه ns3 پیکربندی کنید.

اکنون با استفاده از waf کامپایل کنید.

تصویر زیر نصب موفقیت آمیز ns3-ai را تحت chroot jail نشان می دهد.

تصویر ai-and-ml-algorithms-ns3-simulator_7325_2 الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

پیکربندی رابط پایتون برای ns3-ai

در این مرحله build را پیکربندی کنید.

تصویر زیر پیکربندی موفقیت آمیز رابط پایتون را نشان می دهد.

تصویر ai-and-ml-algorithms-ns3-simulator_7325_3 الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

تست نصب با کد نمونه a_plus_b

a_plus_b یک مثال بسیار ساده اما مفید برای مدل ns3-ai است تا تبادل داده بین چارچوب های هوش مصنوعی مبتنی بر زبان پایتون و ns-3 را نشان دهد. ممکن است از این مثال برای آزمایش نصب ns3-ai استفاده کنیم. در این مثال کد پایتون run.py یک مخزن حافظه مشترک ایجاد می کند و یک شبیه سازی به نام a_plus_b را تحت NS3 شروع می‌کند که برخی از متغیرها را از استخر حافظه مشترک به اشتراک می گذارد. در این حالت، مقدار a و b به طور تصادفی از قسمت پایتون کد انتخاب شده و در استخر حافظه مشترک قرار می گیرد. شبیه سازی ns-3 به این مقادیر a و b دسترسی خواهد داشت و مقدار a+b=c را محاسبه می کند و نتیجه را از خود شبیه سازی ns-3 قرار داده و نمایش می دهد. در نتیجه به دست آمده 10 خروجی داریم. دلیل آن این است که کد پایتون کد ns-3 را 10 بار در یک حلقه اجرا می کند.

روش اصلی

طبق مستندات ns3-ai ، مجموعه دستورات زیر باید مثال a_plus_b را اجرا کنند.

اما در نصب مبتنی بر chroot jail ما این دستور قادر به اجرای بخش ns-3 از کد نیست. (فقط پس از نمایش build به طور نامحدود منتظر می ماند).

روش اصلاح شده

ما سعی کردیم اسکریپت پایتون را در پس زمینه اجرا کرده و سپس به صورت دستی بخش ns-3 شبیه سازی را اجرا کنیم. بنابراین مراحل زیر دستوراتی هستند که در chroot jail استفاده کردیم.

اکنون شبیه سازی خروجی های مورد انتظار را تولید می کند. تصویر زیر خروجی ها را نشان می دهد.

تصویر ai-and-ml-algorithms-ns3-simulator_7325_4 الگوریتم های هوش مصنوعی و یادگیری ماشین در شبیه ساز NS3

نتیجه گیری

این شبیه سازی و مثال از هیچ ویژگی AI/ML استفاده نمی کند. بنابراین مثل ارائه شده بدون داشتن هیچ چارچوب AI/ML بر روی سیستم اجرا می شود. اما اگر بخواهیم نمونه‌ ای را اجرا کنیم که از ویژگی های AI/ML استفاده می کند، قبل از آن باید چارچوب AI/ML لازم و سایر ماژول های پیش نیاز پایتون را نصب کنیم. علاوه بر این در chroot jail برنامه ها آنطور که انتظار می رفت شروع نمی شوند. دلیل این رفتارهای باگ را باید پیدا کرد و به آن پرداخت.

 

باکس دانلود
مطالب مرتبط
معرفی پروتکل ICMP در شبکه

بازدید ۱۸۴۳ نفر
سورس کدهای مرتبط
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است