فهرست بستن

دانلود برچسب: الگوریتم هوشمند

کتابخانه حل کننده الگوریتم بهینه سازی گرگ خاکستری (GWO)

یکی از الگوریتمهای بهینه سازی هوشمند که اخیرا ابداع گردیده و در مدت کوتاهی مورد توجه بسیاری از محققین قرار گرفته است، الگوریتم گرگ خاکستری می باشد. این الگوریتم مانند اکثریت الگوریتمهای هوشمند دیگر الهام گرفته شده از طبیعت جاندار می باشد. ایده اصلی الگوریتم گرگ خاکستری بر مبنای سلسله مراتب رهبری در دسته های گرگها و نحوه شکار آنها می باشد. در حالت کلی چهار دسته گرگ در میان گله گرگهای خاکستری وجود دارد، آلفا، بتا، دلتا و امگا. گرگهای دسته آلفا در رأس هرم رهبری گله قرار دارند و بقیه گرگها از دسته آلفا دستور گرفته و آنها را دنبال می نمایند (معمولا تنها یک گرگ بعنوان گرگ آلفا در هر گله وجود دارد). گرگهای دسته بتا در رده پایینتر قرار دارند ولی برتری آنها نسبت به گرگهای رده دلتا و امگا به آنها جایگاه مشاوره و کمک به گرگ آلفا را می دهد. گرگهای بتا وطیفه نظم بخشیدن و جهتدهی به گله را بر اساس حرکت آلفا بر عهده دارند. گرگهای دلتا که در رده بعدی هرم قدرت در گله گرگها قرار دارند، معمولا از نگهبانان، افراد کهنسال، مراقبت کنندگان از گرگهای آسیب دیده و … تشکیل شده اند. ضعیفترین رده از سلسله مراتب قدرت نیز گرگهای امگا هستند. گرگهای امگا نقش سیاهی لشکر را دارند عملا کار مفیدی انجام نمی دهند ولی در هنگام شکار یا درگیر شدن با گله دیگر باعث احاطه بهتر بر شکار و یا دشمن می گردند.

عملیات شکار در گرگهای خاکستری در سه فاز انجام می گیرد:

  • تعقیب، دنبال کردن و رسیدن به شکار
  • محاصره، آزار و اذیت شکار تا زمانی که متوقف گردد
  • حمله مستقیم به شکار

در الگوریتم بهینه سازی گرگ خاکستری هر یک از دسته های آلفا، بتا و دلتا تک عضوی هستند که کار محاسباتی را آسان می کند. هر گرگ در الگوریتم بصورت یک بردار نشان داده می شود که موقعیت پاسخ مسئله بهینه سازی را نمایندگی می کند. بدون وارد شدن به جزئیات غیرضروری می توان بروز رسانی موقعیت هر گرگ را در الگوریتم بصورت زیر خلاصه کرد:

  1. پارامتر a که در طول تکرارها از دو شروع و رفته رفته با کاهش به یک می رسد را محاسبه می نماییم.
  2. برای هر یک از سه گرگ آلفا، بتا و دلتا بردارهای تصادفی r1 و r2  را در ابعاد بردار پاسخ بدست می آوریم (در بازه بین صفر و یک)
  3. بطور متناظر برای هر یک دو بردار ضرایب A و C را محاسبه می کنیم: A = 2a.r1-a و C = 2r2
  4. سپس برای هر یک بردار D = |C.Xw-X| را محاسبه می نماییم که Xw موقعیت هر یک از گرگهای آلفا، بتا و امگا می باشد و X موقعیت گرگی که می خواهیم بروز رسانی کنیم است.
  5. متناظر با هر بردار X’ = Xw-A محاسبه می گردد.
  6. درنهایت موقعیت جدید گرگی که بدنبال بروز رسانی اش بودیم به شکل میانگین گیری از سه بردار X’ بدست آمده از هر یک از گرگهای آلفا، بتا و دلتا خواهد بود.

همانطور که مستحضر هستید زبان برنامه نویسی پایتون در چند سال اخیر جای خود را در بین زبان های برنامه نویسی مورد استفاده برای محاسبات عددی و شبیه سازیهای علمی باز کرده است. از این رو توانایی حل مسائل بهینه سازی با استفاده از این زبان برنامه نویسی دارای اهمیتی ویژه است. کتابخانه حل کننده الگوریتم گرگ خاکستری به این منظور آماده شده است که محققان خیلی سریع بتوانند مسائل خود را بدون در گیر شدن عمیق با نحوه پیاده سازی خود الگوریتم حل نمایند. لازم به ذکر است با توجه به در دسترس بودن کدهای برنامه کاربر می تواند این الگوریتم را بهبود بخشیده و ویرایشهای بهتری از آن را ارائه دهد. در ادامه به نحوه استفاده از این کتابخانه پرداخته می شود.

کد زیر را که برای یافتن مینیمم تابع مجموع سینوس تعدادی متغیر نوشته شده است، نحوه استفاده از کتابخانه را بطور ساده بیان می نماید:

from numpy import random, sin
from PyGWO import GWOSolver


def f(x):
    o = 0
    for a in x:
        o += sin(a) ** 2
    return o

def solution_generator():
    return 10 * (random.rand(10) - 0.5)

myGWO = GWOSolver(f, 200, solution_generator)
myGWO.solve(2000)
print(myGWO)

همانطور که مشاهده می شود از کتابخانه PyGWO که ارائه شده توسط ماست، کلاس حل کننده یعنی GWOSolver فراخوانی شده است. شی myGWO از نوع این کلاس ساخته شده است که پارامترهای ورودی سازنده آن به ترتیب تابع هدف مسئله بهینه سازی (که بصورت یک تابع با یک ورودی است و آن ورودی بردار پاسخ می باشد.) جمعیت گله گرگها در الگوریتم بهینه سازی گرگ خاکستری و تابع ایجاد کننده پاسخ های تصافی می باشد. تابع تولید کننده پاسخ های تصادفی برای ایجاد جمعیت اولیه بکار می رود. بدون ورودی است و کاربر باید متناسب با مسئله خود آن را طراحی نماید چرا که ایجاد جمعیت اولیه تاثیر بسزایی در پاسخهای الگوریتم بهینه سازی دارد. تابعی که از کلاس GWOSolver عملیات بهینه سازی را آغاز می کند solve نام دارد که تعداد تکرار را به عنوان ورودی می گیرد. خروجی کد بالا به شکل زیر خواهد بود:

Best solution vector:
-۰٫۰۰۵۱۴۷۸۶۱۷۶۹۴۶۸۰۸۴
-۰٫۰۰۴۱۷۹۲۸۱۶۲۴۹۷۵۹۲۵
۳٫۱۴۲۲۴۰۹۲۳۳۳۸۰۵۳
۰٫۰۰۲۴۲۱۲۱۹۳۴۳۳۴۱۶۲۲۶
۰٫۰۰۱۹۶۶۷۹۸۴۱۲۶۰۱۵۹۱۴
-۰٫۰۰۰۳۴۶۳۱۸۰۳۶۰۹۷۵۴۳۷۶
۶٫۲۸۲۵۶۸۷۸۶۲۹۲۰۸۹
-۶٫۴۵۲۲۱۴۳۷۰۱۰۷۳۷۸e-05
۰٫۰۰۳۵۹۵۴۶۱۵۸۵۹۰۱۶۰۱۴
۰٫۰۰۰۵۴۶۷۳۰۸۰۸۵۶۳۸۶۱۳
Fitness: 6.784777628314261e-05

محتویات بسته:

  • فایل پایتون کلاس حل کننده (Solver) الگوریتم بهینه‌سازی گرگ خاکستری
  • فایل پایتون مثال استفاده از الگوریتم برای حل یک مسئله بهینه‌سازی نمونه

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید.

 

برنامه ریزی بهینه تولید همزمان برق و حرارت با الگوریتم بهینه سازی ازدحام ذرات PSO در پایتون

یکی از تکنولوژی‌های شناخته شده و متداول در صنعت انرژی، تولید همزمان برق و حرارت می‌باشد. بالا بودن بازده کاری و همچنین آلایندگی کمتر نسبت به روش‌های هم‌رده دیگر باعث مقبولیت این تکنولوژی در کشورهای توسعه یافته شده است. همچنین در کشورهای در حال توسعه نیز میل به این تکنولوژی افزایش یافته است. بطور خلاصه می‌توان ویژگی‌های تولید همزمان برق و حرارت را در موارد زیر بیان نمود:
• افزایش بازده انرژی
• کاهش انتشار گازهای آلاینده
• کاهش هزینه‌های انرژی نواحی صنعتی
• بهبود قابلیت اطمینان نواحی صنعتی از دید انرژی
• کاهش وقفه در تأمین زیر ساختهای جدید توزیع و انتقال
• طیف وسیع سوخت‌های قابل استفاده با آلایندگی کمتر
حرارت تولیدی در این نوع نیروگاه‌ها در بیشتر اوقات مورد استفاده بخش صنعتی می‌باشد. بطوری که در کشوری مثل ایالات متحده آمریکا در حدود ۸۶% از ظرفیت توان تولیدی واحدهای تولید همزمان برق و حرارت به طور عمده مورد استفاده در صنایعی مانند:
• صنایع غذایی
• صنایع نساجی
• صنایع چوب و مبلمان
• صنعت کاغذ
• صنعت چاپ و نشر
• صنایع شیمیایی
• صنایع پالایش فراورده‌های نفتی
• صنایع پلاستیک
• صنایع سنگ، خاک و شیشه
• صنایع فراوری فلزات اولیه و آلیاژها
می‌باشد.
در کاربردهای واقعی تولید، تأمین توان الکتریکی و حرارتی تقاضا شده صرفا توسط واحدهای تولید همزمان انجام نمی‌گیرد بلکه تعدادی نیروگاه برای تولید توان الکتریکی و تعدادی برای تولید توان حرارتی موجود خواهد بود. در مسئله برنامه‌ریزی بهینه تولید همزمان برق و حرارت، تقاضای توان الکتریکی و همچنین حرارتی بایستی بین واحدهای تولید توان به گونه‌ای تقسیم گردد که علاوه بر تأمین توان مورد نیاز با کمترین هزینه ممکن، پارامترهای کاری نیروگاه‌ها به شکلی قابل قبول تعیین گردند. به عبارتی نقطه کار نیروگاه‌ها بایستی قیدهای موجود برای فعالیت هر یک از آن‌ها را ارضاء نماید. این قیود می‌توانند تساوی، ناتساوی یا قرار گرفتن نقطه کار در یک ناحیه در فضای کاری باشند که در ادامه به طور کامل به آن پرداخته خواهد شد.

توضیحات کلی پیرامون مسئله CHPED یا برنامه ریزی بهینه تولید همزمان برق و حرارت در فایل زیر موجود می باشد.

فایل توضیحات کامل‌تر

برای دریافت کد پایتون مورد اشاره در فایل توضیحات می توانید این محصول را خریداری نمایید. در این کد اقدام به حل مسئله برنامه ریزی بهینه تولید همزمان برق و حرارت با استفاده از الگوریتم بهینه سازی ازدحام ذرات شده است. سیستم تست مورد استفاده از پیاده سازی سیستم ۲۴ واحدی می باشد که درای ۱۳ واحد تولید توان الکتریکی، ۶ واحد تولید همزمان توان الکتریکی و حرارتی و ۵ واحد که صرفا توان حرارتی تولید می‌نمایند، هست.

نمودار همگرایی خروجی الگوریتم در این برنامه بصورت زیر می باشد:

امیدواریم که از خرید این بسته نهایت رضایت را داشته باشید.

محتویات بسته:

  • فایل توضیحات کلی در مورد مسئله برنامه ریزی بهینه تولید همزمان برق و حرارت
  • فایل پایتون حل مسئله CHPED با استفاده از الگوریتم بهینه سازی ازدحام ذرات (PSO)