Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   الگوريتم بهينه سازي فاخته (Cuckoo Optimization Algorithm) (http://artificial.ir/intelligence/forum133.html)
-   -   فيلم آموزشي كدهاي الگوريتم بهينه سازي فاخته (http://artificial.ir/intelligence/thread11063.html)

ramin4251 ۰۶-۱۲-۱۳۹۱ ۰۵:۲۱ بعد از ظهر

فيلم آموزشي كدهاي الگوريتم بهينه سازي فاخته
 

با سلام
با توجه به تماسها و درخواست هاي مكرر شما عزيزان اقدام به تهيه فيلم توضيحات براي كدهاي الگوريتم بهينه سازي فاخته نموديم. تلاش شده است تا جاي ممكن جزئيات كدنويسي الگوريتم COA در اين فيلمها توضيح داده شود تا ابهامات و سوالات مختلف شما عزيزان در مورد قسمت هاي مختلف اين كدها برطرف شود.


فيلم آماده شده در 2 فايل ضبط شده است كه در مجموع 75 دقيقه مي باشد. هر فايل بصورت جداگانه فشرده شده و به چند قسمت 10 مگابايتي تقسيم شده است تا دانلود آنها راحتتر باشد.

براي بازكردن و مشاهده ي هركدام از فيلمهاي شماره 1 و 2، لازم است شما تمام قسمتهاي آن فيلم را دانلود كرده و در فولدري كنار هم قرار دهيد. سپس كافيست فقط يكي از قسمت هاي دانلود شده از هر فيلم را كليك راست كرده و با برنامه WinRAR آنرا از حالت فشرده خارج كنيد. فيلم مورد نظر براحتي باز شده و قابل مشاهده مي باشد. براي هر دو فيلم همين روال را جهت مشاهده فيلم انجام دهيد.




لينك دانلود فايلها بصورت يكپارچه:
------------------------------------------------------------------------------
فيلم 1:
https://telegram.me/cuckoo_optimization_algorithm
حجم فايل: 40 مگابايت


فيلم 2:
https://telegram.me/cuckoo_optimization_algorithm
حجم فايل: 42 مگابايت

-----------------------------------------------------------------------------
لينك هاي كمكي:

فيلم 1:
https://telegram.me/cuckoo_optimization_algorithm
حجم فايل: 40 مگابايت


فيلم 2:
https://telegram.me/cuckoo_optimization_algorithm
حجم فايل: 42 مگابايت
------------------------------------------------------------------------------






با توجه به ناپايداري و قطع و وصل هاي مكرر ديتابيس اين سايت، تصميم بر آن شد تا يك كانال تلگرامي، مخصوص الگوريتم COA را براي مواقع ضروري آماده به كار نگه داريم. تا مطالب جديد و بروز را هميشه در جيب خود به همراه داشته باشيد.
مطالب اين سايت و كانال تلگرام همزمان آپديت خواهند شد و انتخاب مراجعه به هر مسير ارتباطي با شما عزيزان خواهد بود.
آدرس كانال بصورت زير ميباشد. در صورت تمايل ميتوانيد اين كانال را Add كنيد.
آدرس كانال:




با سپاس
رامين رجبيون

mansor50 ۰۶-۱۲-۱۳۹۱ ۰۵:۴۱ بعد از ظهر

سلام آقای رجبیون در الگوریتم شما با چه مکانیزمی به بحث exploration پرداخته میشود ؟ متشکرم

ramin4251 ۰۶-۱۳-۱۳۹۱ ۰۹:۵۰ قبل از ظهر

ببينيد در الگوريتم بهينه سازي فاخته پارامتر مشخصي براي exploration يا exploitation نداريم كه بگيم مثلا كار فلان پارامتر فقط exploration هست. پارامترهايي كه در اينجا تعريف ميشن بصورت ضمني كار مي كنن. يعني هر كدوم چندين كار رو بصورت همزمان انجام ميدن و همين مساله باعث ايجاد سرعت و دقت بالاي كار الگوريتم COA ميشه.
براي مثال تخم گذاري هم كار exploration داره هم به ما كمك ميكنه محيط رو بصورت local جستجو كنيم و هم باعث ميشه بتونيم از local optimum ها فرار كنيم. چون جمعيت جديد تخم ها به نحو خاصي، در اطراف فاخته مادر قرار ميگيره ميتونه همه اينكارها رو انجام بده.
يا خود بحث مهاجرت ميتونه جستجو و همگرايي رو همزمان به عهده بگيره.

براي مشاهده برتري خاص اين عملگر ها و نحوه تعريف اونها اين پست رو از سايت اصلي مشاهده كنيد.


.
.
.

saeed_shahbazian2004 ۱۱-۹-۱۳۹۱ ۱۲:۲۲ بعد از ظهر

سلام جناب مهندس رجبیون
با تشکر از این همه زحمتی که در رابطه با الگوریتم فاخته کشیدید
من از کدهای شما در بهینه سازی یک شبکه برق جهت کاهش تلفات استفاده کردم
و در تابع کاست فانکشن اون یکه پخش بار شبکه برق قرار دادم
بعبارتی خروجی برنامه فاخته به تابع کاست فانکشن رفته و پس از پخش بار شبکه ، خروجی کاست فاکنشن به برنامه بهینه سازی میرود واین پروسه اینقدر ادامه پیدا میکنه که تلفات شبکه به کمترین میزان برسه
مشکلی که بنده در این فرایند دارم اینه که خروجی برنامه بهینه سازی که دو سطری هستش
cuckooPop{cuckooNumber}.profitValues = -feval(powerDGFunction,[cuckooPop{cuckooNumber}.center ; cuckooPop{cuckooNumber}.newPosition4Egg])
مربوط به موقعیت تخمها و فاختها میباشد و موجب دو سطری شدن خروجی میگردد
در حالیکه وردی کاست فانکشن برنامه پخش بار باید یک سطری باشد
در صورت امکان لطف بفرمایید و ایمیلتون رو اعلام کنید که کدها رو براتون ارسال کنم و به بنده حقیر هم مثل سایرین کمک بفرمایید
با تشکر از لطف شما

ramin4251 ۱۱-۱۰-۱۳۹۱ ۱۲:۴۵ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله saeed_shahbazian2004 (پست 27567)
سلام جناب مهندس رجبیون
با تشکر از این همه زحمتی که در رابطه با الگوریتم فاخته کشیدید
من از کدهای شما در بهینه سازی یک شبکه برق جهت کاهش تلفات استفاده کردم
و در تابع کاست فانکشن اون یکه پخش بار شبکه برق قرار دادم
بعبارتی خروجی برنامه فاخته به تابع کاست فانکشن رفته و پس از پخش بار شبکه ، خروجی کاست فاکنشن به برنامه بهینه سازی میرود واین پروسه اینقدر ادامه پیدا میکنه که تلفات شبکه به کمترین میزان برسه
مشکلی که بنده در این فرایند دارم اینه که خروجی برنامه بهینه سازی که دو سطری هستش
cuckoopop{cuckoonumber}.profitvalues = -feval(powerdgfunction,[cuckoopop{cuckoonumber}.center ; cuckoopop{cuckoonumber}.newposition4egg])
مربوط به موقعیت تخمها و فاختها میباشد و موجب دو سطری شدن خروجی میگردد
در حالیکه وردی کاست فانکشن برنامه پخش بار باید یک سطری باشد
در صورت امکان لطف بفرمایید و ایمیلتون رو اعلام کنید که کدها رو براتون ارسال کنم و به بنده حقیر هم مثل سایرین کمک بفرمایید
با تشکر از لطف شما


با سلام

ببينيد شما در تابع هزينه اي كه براي coa مينويسيد بايد جوري كدنويسي كنيد كه برنامه تون قادر باشه يك ماتريس جمعيتي از فاخته ها رو دريافت كنه و به ازاي هر سطر اون ماتريس جمعيتي يك كاست حساب كرده و برگست بده. يعني اگر ماتريس ورودي شما n سطر داشته باشه، خروجي تايع هزينه شما هم، برداري با n سطر خواهد بود.

smartleopard ۱۲-۱۹-۱۳۹۱ ۰۷:۳۱ بعد از ظهر

سلام به همگی
لینک ها خرابن
لطفا اصلاح کنید

با تشکر

mohammadhasani ۰۱-۱۳-۱۳۹۲ ۰۶:۵۲ بعد از ظهر

الگوریتم فاخته
 
با عرض سلام وخسته نباشید مشکل من در کدهای اصلی الگوریتم فاخته است اگه میشه فایلشو
واسه دانلود بزارین خیلی گیرشم خیلی متشکرم (کدهای اصلی)

ramin4251 ۰۱-۱۵-۱۳۹۲ ۱۱:۵۶ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله mohammadhasani (پست 28095)
با عرض سلام وخسته نباشید مشکل من در کدهای اصلی الگوریتم فاخته است اگه میشه فایلشو
واسه دانلود بزارین خیلی گیرشم خیلی متشکرم (کدهای اصلی)

سلام

فايل هاي برنامه در سايت مرجع الگوريتم بهينه سازي فاخته قرار داده شده. ميتونيد از اونجا دانلود كنيد.

aminjet ۰۲-۸-۱۳۹۲ ۰۱:۳۰ بعد از ظهر

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

سوال من از همین جا آغاز می شود. چرا برای این کار این همه پیچیده و از طریق زاویه و سینوس و کسینوس کار کرده اید؟
فرض کنید مسئله من 10 تا پارامتر دارد. خوب هر پارامتر مثلا پارامتر اول در یک بازه می تواند مقدار بگیرد. وقتی که تخم گذاری انجام می شود یا یک عدد به مقدار قبلی اضافه می شود و یا یک عدد از آن کم می شود که مقدار آن پارامتر برای تخم جدید مشخص شود. خوب این اضافه و کم شدن یک عدد به یکی از پارامتر ها یک کار دو بعدی نیست. لازم نبود که بیاییدبازه 0 تا 2*pi را به تعداد تخم ها به میزان مساوی تقسیم کنید و بقیه ماجرا را انجام دهید. چرا کار زیر را انجام ندادید:

1- ابتدا مثل کد های شما با دستورات زیر برای هر فاخته یک شعاع در نظر می گیریم:

for cuckooNumber = 1:numCuckooS
cuckooPop{cuckooNumber}.eggLayingRadius = cuckooPop{cuckooNumber}.numberOfEggs/summ * ( radiusCoeff * (varHi-varLo) );i
end

ببخشید که بهم میریزد

2- در مرحله دوم ما به جای کار شما برای تعیین شعاع های کچکتر از روش زیر استفاده می کنیم:

for cuckooNumber = 1:numCuckooS
cuckooPop{cuckooNumber}.eggLayingRadiuses = linspace( - cuckooPop{cuckooNumber}.eggLayingRadius , cuckooPop{cuckooNumber}.eggLayingRadius , cuckooPop{cuckooNumber}.numberOfEggs);i
end

در این مرحله من به جای روش شما امده ام بازه منفی R تا مثبت R را به تعداد تخم ها به قسمت مساوی تقسیم کرده ام. همین شعاع ها را به عنوان شعاع تخم گذاری در نظر می گیریم.

3-

for cuckooNumber = 1:numCuckooS
params = cuckooPop{cuckooNumber}.center; % get center values
tmpRadiuses = cuckooPop{cuckooNumber}.eggLayingRadiuses;i
numRadiuses = numel(tmpRadiuses);i
newParams = [];i
for cnt = 1:numRadiuses
newParams = [newParams; params + tmpRadiuses(cnt)];i
end

% check for variable limits
newParams(newParams>varHi) = varHi;i
newParams(newParams<varLo) = varLo;i

cuckooPop{cuckooNumber}.newPosition4Egg = newParams;i
end

aminjet ۰۲-۸-۱۳۹۲ ۰۲:۰۵ بعد از ظهر

سوال بعدی من در باره این دستور است:

currentMaxProfit = -feval(costFunction,currentBestCuckoo);i


مقداز مورد نیاز شما قبلاً حساب نشده که برنامه مجبور نباشد یک بار دیگر بهترین فاخته را به تابع هزینه بفرستد؟
این خودش خیلی وقت گیر است. مخصوصا در برنامه من که در تابع هزینه خودش یک بهینه سازی دیگری انجام می شود. هر چه کمتر تابع هزینه فراخوانی شود بهتر است. دو جای دیگر هم فراخوانی شده در انتهای حلقه که اگر مقادیرشان موجود است بشود حفظشان کرد و دوباره هزینه اش محاسبه نشود بهتر است.

ramin4251 ۰۲-۲۴-۱۳۹۲ ۰۷:۴۵ بعد از ظهر

خب الان با اين تغيير چه نتايجي گرفتيد؟ نتايج براي همه مسائل بهتر شده يا برابري ميكنه؟

aminjet ۰۲-۲۵-۱۳۹۲ ۰۴:۴۹ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله ramin4251 (پست 28781)
خب الان با اين تغيير چه نتايجي گرفتيد؟ نتايج براي همه مسائل بهتر شده يا برابري ميكنه؟

سلام برای مسئله خودم تفاوتی ایجاد نمی کرد. هر دو روش یک کار انجام می دهند فقط کاری که من کردم مراحل کمتری را طی می کند. ضمن این که محاسبه sin و cos چون اسکریپت نیست وقتگیر است. در برنامه من به دلیل فراخوانی های زیاد الگوریتم هر چیزی که در وقت صرفه جویی کند مفید است.

یه سوال دیگه هم پرسیده بودم. که آیا امکانش هست تعداد فراخوانی تابع هزینه را کمتر کرد؟

اونجا که کوکوهای تکراری رو حذف می کنیم چقدر ضروری است؟ البته در برنامه من که تابع هزینه زمانبری دارد طبیعتا سودش این است که تابع هزینه کمتر فراخوانی می شود ولی در برنامه هایی که تابع هزینه اش زمانبر نیست آیا جستجوی کوکوی تکراری در هر تکرار چقدر ضروری است؟

ramin4251 ۰۳-۲-۱۳۹۲ ۱۰:۲۴ قبل از ظهر

قطعا ميشه تعداد فراخواني ها رو كمتر كرد. فقط نياز هست برنامه بازنويسي بشه تا بعضي جاها دوباره فراخواني صورت نگيره.
در مورد جستجوي كوكوي تكراري يكي از علت هاي جستجوي همين است كه فراخواني تكراري تابع هدف صورت نگيرد. وقتي دو كوكو در يك موقعيت هستند چرا تابع هزينه رو دوبار فراخواني كنيم؟ البته علت اصلي اين كار مدلساري واقعي زندگي كوكوهاست. اولين و پايه اي ترين كار الهام گيري صحيح از كوكوها بايد باشه. ولي در مرحله بعد جستجوي كوكوي تكراري ميتونه از فراخواني چندين باره تابع هدف براي كوكوي يكسان جلوگيري كنه.

pershia69 ۰۲-۱۸-۱۳۹۳ ۱۰:۴۱ قبل از ظهر

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

ramin4251 ۰۲-۱۸-۱۳۹۳ ۱۲:۵۸ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله pershia69 (پست 32532)
سلام خدمت آقای رجبیون
من میخواستم تو پایان نامه م برای حل مسئله عددصحیح مختلط از الگوریتم شما استفاده کنم
بعدش ایشالا کارمو مقاله کنم
کارایی این الگوریت تو حل مسائل عددصحیح مختلط چقده؟
میخواستم بدونم استفاده از یک الگوریتم جدید برای اولین بار تو ادبیات یک موضوع نوآوری حساب میشه؟
یا باید این الگوریتم و با الگوریتم هایی مثل پرندگان مقایسه کنم
ممنون میشم راهنماییم کنید

شما براي حالت مختلط كافيه به اين صورت عمل كنيد كه براي هر قسمت Real و imaginary يك عدد توليد كنيد. بعد داخل تابع هزينه اين دو عدد رو خيلي راحت كنار هم بذاريد و عدد مختلط خودتون رو ساخته و در تابع هدفتون استفاده كنيد.
در مورد كارايي فكر نكنم كم باشه.
در باره ي مقايسه هم بهتره با الگوريتم هاي مشابه مقايسه كنيد. مثل PSO، GA و ....

با تشكر

mahyaaaa ۰۲-۲۲-۱۳۹۳ ۰۸:۲۹ بعد از ظهر

سلام
هر کاری میکنم دانلود نمی شه
بعد کدی می خوام که یه مساله حل شده باشه با الگوریتم فاخته
شما می تونید رو سایت قرار بدید ؟

ramin4251 ۰۲-۲۳-۱۳۹۳ ۱۱:۲۵ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله mahyaaaa (پست 32574)
سلام
هر کاری میکنم دانلود نمی شه
بعد کدی می خوام که یه مساله حل شده باشه با الگوریتم فاخته
شما می تونید رو سایت قرار بدید ؟

لينك مستقيم جديد در پست اول اضافه شد. ميتونيد دانلود كنيد.

kiumars1370 ۰۲-۲۷-۱۳۹۳ ۱۲:۵۱ قبل از ظهر

سلام میشه درباره نحوه تنظیم درایه های ماتریس q و r در lqr در متلب توضیح بدید؟میخوام یک تابع هزینه مربعی را بهینه نمایم؟

shhb ۰۲-۲۷-۱۳۹۳ ۱۰:۵۰ قبل از ظهر

با سلام
تشکر میکنم درباره مطالب زیبا و آموزنده شما ....
در مورد بهینه سازی شبکه عصبی با الگوریتم فاخته کد و یا مطالبی دارید؟
من در نظر دارم بهینه سازی وزن ها و بایاس های شبکه عصبی (mlp) رو با با دو روش الگوریتم فاخته و الگوریتم رقابت استعماری مقایسه کنم ممنون میشم در این مورد توضیح بدید
با تشکر

2hasan ۰۴-۱۳-۱۳۹۳ ۰۷:۱۵ بعد از ظهر

سلام

لینک دانلود کدهای الگوریتم فاخته که مربوط به سایت coasite.info است غیرفعاله!! و نمیشه دانلود کرد لینک ها رو!! خواهشا اگه کسی از دوستان کد این الگوریتم رو داره ، آپلود کنه!
خیلی خیلی سپاس

ramin4251 ۰۴-۱۴-۱۳۹۳ ۱۱:۰۰ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله 2hasan (پست 32940)
سلام

لینک دانلود کدهای الگوریتم فاخته که مربوط به سایت coasite.info است غیرفعاله!! و نمیشه دانلود کرد لینک ها رو!! خواهشا اگه کسی از دوستان کد این الگوریتم رو داره ، آپلود کنه!
خیلی خیلی سپاس


دو سري لينك در پست اول هست كه هيچ كدوم مربوط به coasite.info نيست. هر دوتا هم قابل دانلود هست. ميتونيد از همون لينكها فيلم رو دانلود كنيد.

behnasr ۰۴-۲۸-۱۳۹۳ ۱۱:۳۹ بعد از ظهر

من هم به کد بهینه سازی فاخته نیاز دارم
کجای پست اول هست که پیداش نمی کنیم؟!!
لطفا هر کس کدش رو داره لینک دانلود بذاره
ممنون

ramin4251 ۰۴-۲۹-۱۳۹۳ ۱۰:۲۹ قبل از ظهر

لطفا تاپيك ها رو بررسي كنيد! اين تاپيك و پست اول براي فيلم هاي آموزشيه. كدهاي الگوريتم در پست ديگه اي هست.

sanazkeneshloo ۱۰-۲۲-۱۳۹۳ ۰۹:۲۱ بعد از ظهر

سلام دوستان من برای پروژه درس روش های فراابتکاری باید مسئله ای رو این الگوریتم کد کنم ، به کجا می تونم سفارش بدم این کار رو انجام بده؟

ramin4251 ۱۰-۲۹-۱۳۹۳ ۰۶:۳۹ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله sanazkeneshloo (پست 34399)
سلام دوستان من برای پروژه درس روش های فراابتکاری باید مسئله ای رو این الگوریتم کد کنم ، به کجا می تونم سفارش بدم این کار رو انجام بده؟

مثال هاي مختلفي روي همين سايت هست. اگر نياز به موضوع خيلي خاصي باشه بايد جزئيات رو مشخص كنيد.
آدرس ايميل در زير (قسمت امضا) هست. ميتونيد از اون استفاده كنيد تا فايلهاتون بررسي بشه كه كارتون در چه حدي هست و در مورد انجامش راهنمايي بشه.

با تشكر

coronaa ۰۱-۹-۱۳۹۴ ۱۱:۵۶ بعد از ظهر

xxxxxxx
حل شد :)

dariushs98 ۰۲-۱۲-۱۳۹۴ ۰۶:۵۳ بعد از ظهر

با سلام و عرض خسته نباشید خدمت آقای رجبیون
بنده از الگوریتم جستجوی فاخته در بهینه سازی قابلیت اطمینان استفاده می کنم. متغیرهای تصمیم مسئله بنده تعداد اجزای هر زیرسیستم(عدد صحیح و کمتر از 10) و قابلیت اطمینان هر زیرسیستم(عددی بین 0و1) می باشد. اما در حین اجرا خطا دارم ضمن اینکه محدودیت های مسئله هم از نوع غیرخطی عددمختلط هستند. امکانش هست که تابع هزینه ی مربوط به محدودیت ها رو اشتباه نوشته باشم؟
با تشکر

saeed dr ۰۶-۲۰-۱۳۹۴ ۱۰:۲۹ بعد از ظهر

Coa
 
با سلام خدمت آقای رجبیون
به منظور حل مسائل ماکزیمم سازی با الگوریتم فاخته کدام قسمت های برنامه را باید اصلاح کرد؟؟؟

ramin4251 ۰۷-۶-۱۳۹۴ ۰۲:۰۸ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله saeed dr (پست 35976)
با سلام خدمت آقای رجبیون
به منظور حل مسائل ماکزیمم سازی با الگوریتم فاخته کدام قسمت های برنامه را باید اصلاح کرد؟؟؟

شما فقط كافيه تابع هزينه رو معكوس كنيد. يعني بجاي cost بنويسيد cost/و1
يعني اين خط رو انتهاي برنامه تابع هزينه خودتون اضافه كنيد:
cost = 1/cost

يا اينكه يك علامت منفي كنار تابع هزينه قرار بديد. مثلا آخر تابع هزينه بنويسيد: cost = -cost


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۸:۲۹ قبل از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.