موضوع آشنایی با الگوریتم بهینه سازی PSO و بکارگیری آن در پروسهCurve Fitting فرمت doc فقط اسمت رو بنویس و تحویل بده
چکیده
فرض کنید شما و گروهی از دوستان تان به دنبال گنج می گردید هر یک از اعضای گروه یک فلزیاب و یک بی سیم دارند که می تواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد بنابراین شما می دانید آیا همسایگان¬ تان از شما به گنج نزدیکترند یا نه ؟ پس اگر همسایه ای به گنج نزدیکتر بود شما می توانید به طرف او حرکت کنید. با چنین کاری تماس شما برای رسیدن به گنج بیشتر می شود و همچنین گنج زودتر از زمانی که شما تنها باشید پیدا می شود.
این یک مثال ساده از رفتار جمعی یا swarm behavior است که افراد برای رسیدن به یک هدف نهایی همکاری می کنند . این روش موثرتر از زمانی است که افراد جداگانه عمل کنند. Swarm را می توان به صورت مجموعه ای سازمان یافته از موجوداتی تعریف کرد که با یکدیگر همکاری می کنند. در کاربردهای محاسباتی swarm intelligence از موجوداتی مانند دسته ی پرندگان و مورچه ها ، زنبورها ، موریانه ها ، دسته ماهیان الگو برداری می شود . در این نوع اجتماعات هر یک از موجودات ساختار نسبتاً ساده ای دارند ولی رفتار جمعی آنها بی نهایت پیچیده است . برای مثال در کولونی مورچه ها هریک از مورچه ها یک کار ساده ی مخصوص را انجام می دهد ولی به طور جمعی عمل و رفتار مورچه ها ، ساختن بهینه لایه ، محافظت از ملکه و نوزادان ، تمیز کردن لانه ، یافتن بهترین منابع غذایی و بهینه سازی استراتژی حمله را تضمین می کند. رفتار کلی یک swarm به صورت غیر خطی از آمیزش رفتارهای تک تک اجتماع بدست می آید. یا به عبارتی یک رابطه ی بسیار پیچیده بین رفتار جمعی و رفتار فردی یک اجتماع وجود دارد. رفتار جمعی فقط وابسته به رفتار فردی افراد اجتماع نیست بلکه به چگونگی تعامل میان افراد نیز وابسته است . تعامل بین افراد ، تجربه ی افراد درباره ی محیط را افزایش می دهد و موجب پیشرفت اجتماع می شود . ساختار اجتماعی swarm بین افراد مجموعه کانال های ارتباطی ایجاد می کند که طی آن افراد می توانند به تبادل تجربه های شخصی بپردازند مدل سازی محاسباتی swarm، کاربردهای موفق و بسیار را در پی داشته است. به طور کلی موضوع پروژه رسم تابع تخمینی در بحث ریاضیات برای رسم یک سری داده با استفاده از نرم افزار متلب می باشد. جمعیتی که در این پروژه مورد مطالعه و بررسی قرار می گیرند با توجه به ماهیت پروژه یکسری داده مربوط به یک تابع مشخص می باشند که ما در هر مرحله نتایج را با مقادیر دادهها مقایسه کرده تا بتوانیم ذراتی تولید کرده که بهینه شده باشند و کمترین اختلاف را با جمعیت اولیه داشته باشند. برای این منظور پروژه تا حد ممکن طوری تنظیم شده که همه جنبه های اساسی موضوع چه از نظر کاربردی و چه از نظر تئوری را در بر گیرد. در بحث آشنایی با الگوریتم و تعاریف مربوط به آن سعی شده تا هرچه بیشتر موضوع باز شده و مثال هایی به همراه داشته باشد تا موضوع ساده و روان بوده و به راحتی قابل درک باشد.
کلمات کلیدی
بهینه سازی(Optimization)، تابع برا زنگی(fitness)، بهترین سراسری(g_best)،
بهترین شخصی(p_best)، الگوریتم بهینه سازی،کلونی
فصل اول: “آشنایی با برخی ازانواع الگوریتم های بهینه سازی ”
مقدمه ای بر بهینه سازی
۱- ۱ الگوریتم اجتماع پرندگان(particle swarm optimization Algorithm – pso)
۱-۲ الگوریتم ژنتیک(Genetic Algorithm – GA
۱-۳ الگوریتم کلونی مورچه ها(Aco- Ant colony optimization Algorithm
۱-۴ الگوریتم کلونی زنبور عسل(Abc-Artificial bee colony algorithm
۱-۵ الگوریتم چکه های آب هوشمند یا چکاه(Intelligent water Drops Algorithm -Iw
فصل دوم : ” الگوریتم(particle swarm optimization – pso) و
” Cooperative Particle swarm optimization – cpso) (
مقدمه
۲-۱ ماهیت الگوریتم
۲-۲ مفاهیم اولیه
۲-۳ فلو چارت
۲-۴ اطلاعات فنی
۲-۵ ساختار کلی
۲-۶ قاعده کلی توپولوژی همسایگی
۲-۷ نکات کلیدی
۲-۷-۱ خاصیت هوش جمعی
۲-۷-۲ هوش ذرات
۲-۷-۳ کنترل الگو ریتم
۲-۷-۴ تعداد ذرات
۲-۷-۵ محدوده ی ذرات
۲-۷-۶ شرایط توقف
۲- ۸ مزایا و کاربردهای الگو ریتم
۲-۹ ذرات swarm در تعدادی فضای واقعی
۲-۱۰مثال هایی از حرکت ذرات
۲-۱۰ مثالی از پرواز پرندگان برای یافتن غذا
۲-۱۱ الگوریتم Cooperative Particle swarm optimization
۲-۱۲ معرفی نرم افزار بکار رفته در شبیه سازی پروسه
فصل سوم: به ” بکار گیری cpsoو pso در پروسه ی Curve Fitting”
مقدمه
۳-۱ ماهیت کار
۳-۲ مراحل انجام کار به کمک الگوریتمpso
۳-۲-۱ بدست آوردن تابع برازندگی
۳-۲-۲ مشخص کردن اندازه جمعیت اولیه و ابعاد آن
۳-۲-۳ بررسی خروجی های بدست آمده از تابع Fitnessدر تکرار اول
۳-۲-۴ ایجاد لیست اول جهت نگهداری خروجی های بدست آمده
۳-۲-۵ پیدا کردن بهترین خروجی تابع Fitness و یافتن مکان آن در لیست اول
۳-۲-۶ آبدیت کردن سرعت و مکان ذرات با توجه به اینکه سرعت اولیه ذرات قبلا تعریف
۳-۲-۷ ایجاد لیست دوم جهت نگهداری خروجی های تابع Fitness در تکرار دوم
۳-۲-۸ پیدا کردن مکان بهترین ذره در جمعیت دوم
۳-۲-۹ مقایسه خروجی های تابع Fitness در دو تکرار اول
۳-۲-۱۰ پیدا کردن بهترین ذرات در دو جمعیت اول و دوم و تولید جمعیت سوم
۳-۲-۱۱ محاسبه تابع Fitness برای جمعیت سوم
۳-۲-۱۲ تکرار از مرحله پنجم الی یازدهم تا رسیدن به نقاط بهینه
۳-۳ مراحل انجام کار برای الگوریتمcpso
فصل چهارم : نتایج
۴-۱ انجام پروسه توسط الگوریتم pso
۴-۲ انجام پروسه توسط الگوریتم cpso
۴-۳ بررسی تفاوت بین psoوcpso
فصل پنجم: نتیجه گیری و پیشنهاد
۵-۱ نتیجه گیری
۵-۲ پیشنهاد
مراجع
پیوست
الگوریتم بهینه سازی توده ذرات در ابتداییترین شکل خود یک روش تکراری دستهجمعی آشفته با تاکید بر همکاری است. این الگوریتم تا حدی تصادفی بوده و بدون مکانیزم انتخاب است و از حرکت گروهی پرندگان و زنبورها الهام گرفته است. رفتار جمعی تمام افراد جمعیت باعث یک همگرایی درنقطهای نزدیک به جواب بهینه مطلق میشود. نقطه قوت این الگوریتم عدم نیاز به یک کنترل سراسری است. هرفرد دراین الگوریتم خود مختاری نسبی دارد که میتواند درسراسر فضای جستجو حرکت کند و میبایست با سایر افراد همکاری داشته باشد. در این گزارش ابتدا نحوه کارکرد کد نوشته شده مورد بررسی قرار میگیرد. در فصل دوم الگوریتم بهینه سازی توده ذرات به طور مفصل توضیح داده میشود. در فصل آخر نیز نحوه پیاده سازی این الگوریتم بر روی کد Matlabتوضیح داده خواهد شد.
الگوریتم PSO یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دستههای پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینهی دسته به کار گرفته شد . در PSO، ذرات در فضای جستجو جاری میشوند. تغییر مکان ذرات در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است. بنابراین موقعیت دیگر توده ذرات روی چگونگی جستجوی یک ذره اثر میگذارد . نتیجهی مدلسازی این رفتار اجتماعی فرایند جستجویی است که ذرات به سمت نواحی موفق میل میکنند. ذرات از یکدیگر میآموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود میروند اساس کار PSO بر این اصل استوار است که در هر لحظه هر ذره مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگیاش وجود دارد، تنظیم میکند.
فرض کنید شما و گروهی از دوستان تان به دنبال گنج می گردید هر یک از اعضای گروه یک فلزیاب و یک بی سیم دارند که می تواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد بنابراین شما می دانید آیا همسایگان¬ تان از شما به گنج نزدیکترند یا نه ؟ پس اگر همسایه ای به گنج نزدیکتر بود شما می توانید به طرف او حرکت کنید. با چنین کاری تماس شما برای رسیدن به گنج بیشتر می شود و همچنین گنج زودتر از زمانی که شما تنها باشید پیدا می شود.
این یک مثال ساده از رفتار جمعی یا swarm behavior است که افراد برای رسیدن به یک هدف نهایی همکاری می کنند . این روش موثرتر از زمانی است که افراد جداگانه عمل کنند. Swarm را می توان به صورت مجموعه ای سازمان یافته از موجوداتی تعریف کرد که با یکدیگر همکاری می کنند. در کاربردهای محاسباتی swarm intelligence از موجوداتی مانند دسته ی پرندگان و مورچه ها ، زنبورها ، موریانه ها ، دسته ماهیان الگو برداری می شود . در این نوع اجتماعات هر یک از موجودات ساختار نسبتاً ساده ای دارند ولی رفتار جمعی آنها بی نهایت پیچیده است . برای مثال در کولونی مورچه ها هریک از مورچه ها یک کار ساده ی مخصوص را انجام می دهد ولی به طور جمعی عمل و رفتار مورچه ها ، ساختن بهینه لایه ، محافظت از ملکه و نوزادان ، تمیز کردن لانه ، یافتن بهترین منابع غذایی و بهینه سازی استراتژی حمله را تضمین می کند. رفتار کلی یک swarm به صورت غیر خطی از آمیزش رفتارهای تک تک اجتماع بدست می آید. یا به عبارتی یک رابطه ی بسیار پیچیده بین رفتار جمعی و رفتار فردی یک اجتماع وجود دارد. رفتار جمعی فقط وابسته به رفتار فردی افراد اجتماع نیست بلکه به چگونگی تعامل میان افراد نیز وابسته است . تعامل بین افراد ، تجربه ی افراد درباره ی محیط را افزایش می دهد و موجب پیشرفت اجتماع می شود . ساختار اجتماعی swarm بین افراد مجموعه کانال های ارتباطی ایجاد می کند که طی آن افراد می توانند به تبادل تجربه های شخصی بپردازند مدل سازی محاسباتی swarm، کاربردهای موفق و بسیار را در پی داشته است. به طور کلی موضوع پروژه رسم تابع تخمینی در بحث ریاضیات برای رسم یک سری داده با استفاده از نرم افزار متلب می باشد. جمعیتی که در این پروژه مورد مطالعه و بررسی قرار می گیرند با توجه به ماهیت پروژه یکسری داده مربوط به یک تابع مشخص می باشند که ما در هر مرحله نتایج را با مقادیر دادهها مقایسه کرده تا بتوانیم ذراتی تولید کرده که بهینه شده باشند و کمترین اختلاف را با جمعیت اولیه داشته باشند. برای این منظور پروژه تا حد ممکن طوری تنظیم شده که همه جنبه های اساسی موضوع چه از نظر کاربردی و چه از نظر تئوری را در بر گیرد. در بحث آشنایی با الگوریتم و تعاریف مربوط به آن سعی شده تا هرچه بیشتر موضوع باز شده و مثال هایی به همراه داشته باشد تا موضوع ساده و روان بوده و به راحتی قابل درک باشد.
کلمات کلیدی
بهینه سازی(Optimization)، تابع برا زنگی(fitness)، بهترین سراسری(g_best)،
بهترین شخصی(p_best)، الگوریتم بهینه سازی،کلونی
فصل اول: “آشنایی با برخی ازانواع الگوریتم های بهینه سازی ”
مقدمه ای بر بهینه سازی
۱- ۱ الگوریتم اجتماع پرندگان(particle swarm optimization Algorithm – pso)
۱-۲ الگوریتم ژنتیک(Genetic Algorithm – GA
۱-۳ الگوریتم کلونی مورچه ها(Aco- Ant colony optimization Algorithm
۱-۴ الگوریتم کلونی زنبور عسل(Abc-Artificial bee colony algorithm
۱-۵ الگوریتم چکه های آب هوشمند یا چکاه(Intelligent water Drops Algorithm -Iw
فصل دوم : ” الگوریتم(particle swarm optimization – pso) و
” Cooperative Particle swarm optimization – cpso) (
مقدمه
۲-۱ ماهیت الگوریتم
۲-۲ مفاهیم اولیه
۲-۳ فلو چارت
۲-۴ اطلاعات فنی
۲-۵ ساختار کلی
۲-۶ قاعده کلی توپولوژی همسایگی
۲-۷ نکات کلیدی
۲-۷-۱ خاصیت هوش جمعی
۲-۷-۲ هوش ذرات
۲-۷-۳ کنترل الگو ریتم
۲-۷-۴ تعداد ذرات
۲-۷-۵ محدوده ی ذرات
۲-۷-۶ شرایط توقف
۲- ۸ مزایا و کاربردهای الگو ریتم
۲-۹ ذرات swarm در تعدادی فضای واقعی
۲-۱۰مثال هایی از حرکت ذرات
۲-۱۰ مثالی از پرواز پرندگان برای یافتن غذا
۲-۱۱ الگوریتم Cooperative Particle swarm optimization
۲-۱۲ معرفی نرم افزار بکار رفته در شبیه سازی پروسه
فصل سوم: به ” بکار گیری cpsoو pso در پروسه ی Curve Fitting”
مقدمه
۳-۱ ماهیت کار
۳-۲ مراحل انجام کار به کمک الگوریتمpso
۳-۲-۱ بدست آوردن تابع برازندگی
۳-۲-۲ مشخص کردن اندازه جمعیت اولیه و ابعاد آن
۳-۲-۳ بررسی خروجی های بدست آمده از تابع Fitnessدر تکرار اول
۳-۲-۴ ایجاد لیست اول جهت نگهداری خروجی های بدست آمده
۳-۲-۵ پیدا کردن بهترین خروجی تابع Fitness و یافتن مکان آن در لیست اول
۳-۲-۶ آبدیت کردن سرعت و مکان ذرات با توجه به اینکه سرعت اولیه ذرات قبلا تعریف
۳-۲-۷ ایجاد لیست دوم جهت نگهداری خروجی های تابع Fitness در تکرار دوم
۳-۲-۸ پیدا کردن مکان بهترین ذره در جمعیت دوم
۳-۲-۹ مقایسه خروجی های تابع Fitness در دو تکرار اول
۳-۲-۱۰ پیدا کردن بهترین ذرات در دو جمعیت اول و دوم و تولید جمعیت سوم
۳-۲-۱۱ محاسبه تابع Fitness برای جمعیت سوم
۳-۲-۱۲ تکرار از مرحله پنجم الی یازدهم تا رسیدن به نقاط بهینه
۳-۳ مراحل انجام کار برای الگوریتمcpso
فصل چهارم : نتایج
۴-۱ انجام پروسه توسط الگوریتم pso
۴-۲ انجام پروسه توسط الگوریتم cpso
۴-۳ بررسی تفاوت بین psoوcpso
فصل پنجم: نتیجه گیری و پیشنهاد
۵-۱ نتیجه گیری
۵-۲ پیشنهاد
مراجع
پیوست