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

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

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

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

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

شما نياز به بازنويسي كدها نداشتيد. با يك حلقه for ميتونستيد اينكار رو داخل تابع هزينه خودتون اصلاح كنيد. هيچ نيازي به تغيير نبود.
ولي در مورد سوالتون بايد بگم كه بله، بودند افرادي كه الگوريتم رو در C و #C نوشتند و جواب هاي خوبي گرفتن. مقالاتشون هم در ژورنالهاي مختلف چاپ شده.

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

نقل قول:

نوشته اصلي بوسيله ramin4251 (پست 33227)
شما نياز به بازنويسي كدها نداشتيد. با يك حلقه for ميتونستيد اينكار رو داخل تابع هزينه خودتون اصلاح كنيد. هيچ نيازي به تغيير نبود.
ولي در مورد سوالتون بايد بگم كه بله، بودند افرادي كه الگوريتم رو در C و #C نوشتند و جواب هاي خوبي گرفتن. مقالاتشون هم در ژورنالهاي مختلف چاپ شده.


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


function [y] = rastr(xx)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INPUT:
%
% xx = [x1, x2, ..., xd]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
d = length(xx);
sum = 0;
for ii = 1:d
xi = xx(ii);
sum = sum + (xi^2 - 10*cos(2*pi*xi));
end
y = 10*d + sum;
end

ایا امکان داره مقالاتی که در انها الگوریتم شما را بازنویسی کردن معرفی کنید . لازمه بفهمم اشکال کارم کجاست تا درک بهتری از الگوریتم شما داشته باشم

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

يه همچين تابع هزينه اي كار شما رو راه مينداخت:


(function cost = costFunction(pop

;(cost = zeros(size(pop,1),1
(for ii = 1:size(pop,1
;(:,x = pop(ii
;cost(ii,1) = (1-x)^2
end


زمان محلي شما با تنظيم 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.