در این پست سورس کد الگوریتم PSO در پایتون Python قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم ازدحام ذرات یا همان PSO نوشته شده است. این سورس کد بر اساس 12 توابع تست الگوریتم PSO را اجرا می کند. برای اینکه بتوانید مسئله الگوریتم PSO را واضح و کامل درک کنید مقاله ای کامل با عنوان الگوریتم PSO در همین سایت نوشته شده است. در ادامه مختصری از الگوریتم برای درک کد الگوریتم ازدحام ذرات در پایتون بیان می شود.
تهیه و تنظیم: تیم طراحی و تولید پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم طراحی و تولید پی استور از اولین تیم های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف تولید محتوای تخصصی فعال هستند.
الگوریتم PSO
الگوریتم PSO یا (Particle swarm optimization) بهینه سازی ازدحام ذرات (PSO) یک روش بهینه سازی تصادفی مبتنی بر جمعیت است که الهام گرفته از رفتار اجتماعی ازدحام پرندگان و پرورش ماهی است. این الگوریتم با جمع آوری راه حل های تصادفی و جستجو برای بهینه سازی با به روز رسانی نسل ها آغاز می شود. همانطور که قبلا اشاره شد، الگوریتم PSO رفتارهای ازدحام پرنده را شبیه سازی می کند.
تصور کنید سناریوی زیر: گروهی از پرندگان به طور تصادفی در یک منطقه در معرض غذا قرار می گیرند. در منطقه مورد جستجو تنها یک قطعه غذا وجود دارد. همه پرندگان نمی دانند کجا غذا است. اما آنها می دانند که چقدر مواد غذایی در هر تکرار است. بنابراین بهترین استراتژی برای یافتن غذا چیست؟ راه حل این است که دنبال پرنده ای که نزدیکتر به غذا است را دنبال کنید.
طراحان PSO از این سناریو اقتباس کردند و از آن برای حل مشکلات بهینه سازی استفاده کردند. در PSO، هر یک از راه حل یک “پرنده” در فضای جستجو است. ما آن را “ذره” می نامیم. تمام ذرات دارای مقادیر تناسب هستند که توسط تابع تناسب برای بهینه سازی ارزیابی می شوند و دارای سرعت هایی هستند که پرواز ذرات را هدایت می کنند. ذرات از طریق فضای مشکل با ذرات بهینه مطلوب جریان می یابند.
نحوه عملکرد
الگوریتم PSO با گروهی از ذرات تصادفی (راه حل) آغاز می شود و سپس با به روز رسانی نسل ها جستجو می کند. در هر تکرار، هر ذره با دو ارزش “بهترین” به روزرسانی می شود. اولین مورد بهترین راه حل ( تابع تناسب ) است که تاکنون به دست آورده است. (ارزش تناسب نیز ذخیره می شود.) این ارزش pbest نامیده می شود. یکی دیگر از “بهترین ها” ارزشی است که تا کنون توسط هر ذره در جمعیت به دست آمده است.
این بهترین ارزش جهانی بهترین است و به نام gbest است. هنگامی که یک ذره بخشی از جمعیت را به عنوان همسایگان توپولوژیکی خود می گیرد، بهترین ارزش بهترین محلی است و به نام lbest نامیده می شود.
پس از پیدا کردن بهترین مقادیر pbest و gbest ذره سرعت و موقعیت خود را با معادله زیر (1) و (2) به روز می کند.
v[] = v[] + c1 * rand() * (pbest[] – present[]) + c2 * rand() * (gbest[] – present[]) (1)
present[] = persent[] + v[] (2)
که در آن v سرعت ذرات است، present ذره فعلی (راه حل) است. pbest و gbest قبلا تعریف شده اند. rand یک عدد تصادفی بین (0،1) است. C1، C2 عامل یادگیری هستند. معمولا c1 = c2 = 2 هستند.
قسمت هایی از سورس کد
import CostFun as fit import random import numpy import matplotlib.pyplot as plt # PSO parameters lb=-10 ub=10 dim=30 PopSize=50 iters=100 Vmax=6 wMax=0.9 wMin=0.2 c1=2 c2=2 if not isinstance(lb, list): lb = [lb] * dim if not isinstance(ub, list): ub = [ub] * dim # Initializations vel=numpy.zeros((PopSize,dim)) pBestScore=numpy.zeros(PopSize) pBestScore.fill(float("inf")) pBest=numpy.zeros((PopSize,dim)) gBest=numpy.zeros(dim) gBestScore=float("inf") pos = numpy.zeros((PopSize, dim)) for i in range(dim): pos[:, i] = numpy.random.uniform(0,1, PopSize) * (ub[i] - lb[i]) + lb[i] convergence_curve=numpy.zeros(iters)
ویدیو معرفی محصول
*** توجه ***
قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیج های مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیج های استفاده شده در این سورس کد numpy و matplotlib می باشد که اولی پکیج مربوط به استفاده از آرایه ها و ماتریس ها در پایتون و دومی مربوط به عملیات های نموداری و Plot گرفتن می باشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 می باشد که هم پایتون و پکیج های مختلف و هم IDE های مختلفی را همراه با امکان آپدیتشان نصب می کند.
درباره سورس کد الگوریتم PSO در پایتون
سورس کد الگوریتم PSO در پایتون Python عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در پایتون و با IDE اسپایدر (Spyder (Python 3.7 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
تضمین کیفیت و گارانتی بازگشت هزینه
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:
- ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ میشود.
- و یا 80 درصد مبلغ پرداختی به حساب بانکی شما عودت داده میشود.
مباحث مرتبط با الگوریتم PSO
سورس کدهای آماده الگوریتم های مشابه در پایتون
کد الگوریتم PSO در پایتون Python
تاریخ انتشار: | 22 آبان 1398 |
---|---|
تاریخ بروزرسانی: | 24 اسفند 1398 |
حجم فایل: | 3.9 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
مدت زمان: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | (Spyder (Python 3.8 |
تاکنون 738 نفر این محصول را تهیه کرده اند و 5 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
کد الگوریتم PSO در پایتون Python
هزینه سفارش: 129,000 تومان
تاریخ انتشار: | 22 آبان 1398 |
---|---|
تاریخ بروزرسانی: | 24 اسفند 1398 |
حجم فایل: | 3.9 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
مدت زمان: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | (Spyder (Python 3.8 |
5 بازخورد (مشاهده نظرات)
هزینه سفارش: 129,000 تومان
مهدی عبدی
ممنون دستتون درد نکنه
مهدی عبدی
سلام
این اولین خرید من هست، میشه تخفیف بدین بعدا فیلم آموزشی هم میخوام دانلود کنم.
فاطمه اسماعیلی
سلام وقت بخیر
لطفا در بخش چت آنلاین پیغام بدید تا کد تخفیف براتون ارسال بشه.
امیر
سلام وقت بخیر
من فایل شما را خریداری کردم
شما فقط ی کد برنامه رو گذاشتید و هیچ توضیحی در مورد کد یا مقادیر ان ندادید
مدیریت و پشتیبانی
سلام و عرض ادب
همانطور که در قسمت توضیحات محصول اشاره شده این محصول فقط سورس کد هست. در توضیحات نیز اشاره شده که محصولی با عنوان فیلم آموزش الگوریتم PSO در پایتون نیز وجود دارد که در صورت نیاز می توانید آن را خریداری کنید.
مصطفی پورمهدی
سلام
ممنون از شما کدها عالی و روان بودن. من فیلم آموزش الگوریتم pso رو هم میخواستم لطفا لینک فیلم رو هم به ایمیل من ارسال کنید.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.