تیم برنامهنویسی پیاستور
هزینه سفارش:
۲۰۸,۰۰۰ تومان قیمت اصلی: ۲۰۸,۰۰۰ تومان بود.۸۰,۰۰۰ تومانقیمت فعلی: ۸۰,۰۰۰ تومان.
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
الگوریتم ژنتیک پیوسته روشی براي بهینه سازي با جستجوي وسیع است و کارکرد آن بر اصول انتخاب طبیعی حاکم بر ژنتیک طبیعی استوار است. ایده این الگوریتم از نظریه تکامل داروین الهام گرفته شده است. اگرچه این الگوریتم روشی براي جستجوي تصادفی است، ویژگیهاي خاص آن موجب میشود که نتوان آن را یک جستجوي تصادفی ساده قلمداد کرد. در این الگوریتم اطلاعات تاریخی از چگونگی تکامل، به شکلی کارا استخراج شده و در روند جستجو استفاده میشود. الگوریتم ژنتیک روشی قدرتمند بوده و بر روي دسته وسیعی از مسائل بهخوبی عمل میکند.
الگوریتم ژنتیک واقعی که بر اساس ایدهی تکامل بیولوژیکی در طبیعت عمل مینمایند، بر روي جمعیتی از راه حلهای بالقوه یا کروموزومها که هریک میتوانند بهعنوان پاسخی از مسئله تلقی شوند، با اعمال عملگرهای ژنتیکی به جستجوي راه حل نهایی میپردازند. در الگوریتم ژنتیکی، بسیاري از مکانیزمهایی که در زیست شناسی وجود دارد، نظیر انتخاب ژن برتر، ترکیب ژنها، جهش ژنها، مهاجرت افراد جمعیت، محلی بودن گونهها و … شبیه سازي میشوند. در این الگوریتمها، جستجو بر روي مجموعههايی از راه حلها بهصورت موازي انجام میشود، درحالیکه در روشهاي سنتی جستجو بهصورت ترتیبی است.
در آغاز الگوریتم، تعدادي از افراد بهعنوان جمعیت اولیه و معمولاً بهصورت تصادفی ساختهشده و معیاري از کیفیت به نام تابع هدف یا برازندگی براي تک تک آنها ارزیابی میشود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدي با انتخاب والدین بر اساس میزان برازندگی آنها تولید میشود. در هر نسل، بهترینهای آن نسل انتخاب میشوند و پس از زادوولد، مجموعه جدیدی از فرزندان را تولید میکنند.
کروموزومهای موجود در جمعیت بر اساس مقدار برازندگی بهعنوان والد انتخاب میشوند. سپس تولید مثل، بین جفت کروموزومها انجام میگیرد تا فرزندان ایجاد شوند و فرزندان با احتمالی ثابت دچار جهش میشوند. سپس میزان برازندگی فرزندان جدید محاسبهشده و جمعیت جدید، از جایگزینی فرزندان با والدین ایجاد میشود و جمعیت ایجادشده جدید بهعنوان نسل بعدي شناخته میشود و فرایند تکرار می شود. در این فرایند، افراد مناسبتر با احتمال بیشتري در نسلهاي بعد باقی خواهند ماند و این فرایند تا برقرار شدن شرط خاتمه تکرار میشود.
الگوریتم زمانی پایان خواهد یافت که بهبودي بر روي جوابها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود. مراحل کلی یک الگوریتم ژنتیک میتواند بهصورت شکل زیرباشد.

clc;
clear;
close all;
%% Problem Definition
CostFunction=@(x) Costfun(x); % Cost Function
nVar=10; % Number of Decision Variables
VarSize=[1 nVar]; % Decision Variables Matrix Size
VarMin=-10; % Lower Bound of Variables
VarMax= 10; % Upper Bound of Variables
%% GA Parameters
MaxIt=500; % Maximum Number of Iterations
nPop=100; % Population Size
pc=0.7; % Crossover Percentage
nc=2*round(pc*nPop/2); % Number of Offsprings (also Parnets)
gamma=0.4; % Extra Range Factor for Crossover
pm=0.3; % Mutation Percentage
nm=round(pm*nPop); % Number of Mutants
mu=0.1; % Mutation Rate
%% Main Loop
for it=1:MaxIt
% Calculate Selection Probabilities
if UseRouletteWheelSelection
P=exp(-beta*Costs/WorstCost);
P=P/sum(P);
end
% Crossover
popc=repmat(empty_individual,nc/2,2);
for k=1:nc/2
% Select Parents Indices
if UseRouletteWheelSelection
i1=RouletteWheelSelection(P);
i2=RouletteWheelSelection(P);
end
if UseTournamentSelection
i1=TournamentSelection(pop,TournamentSize);
i2=TournamentSelection(pop,TournamentSize);
end
if UseRandomSelection
i1=randi([1 nPop]);
i2=randi([1 nPop]);
end
% Select Parents
p1=pop(i1);
p2=pop(i2);
% Apply Crossover
[popc(k,1).Position, popc(k,2).Position]=Crossover(p1.Position,p2.Position,gamma,VarMin,VarMax);
% Evaluate Offsprings
popc(k,1).Cost=CostFunction(popc(k,1).Position);
popc(k,2).Cost=CostFunction(popc(k,2).Position);
end
popc=popc(:);
% Mutation
popm=repmat(empty_individual,nm,1);
for k=1:nm
% Select Parent
i=randi([1 nPop]);
p=pop(i);
% Apply Mutation
popm(k).Position=Mutate(p.Position,mu,VarMin,VarMax);
% Evaluate Mutant
popm(k).Cost=CostFunction(popm(k).Position);
end
% Create Merged Population
pop=[pop
popc
popm]; %#ok
% Sort Population
Costs=[pop.Cost];
[Costs, SortOrder]=sort(Costs);
pop=pop(SortOrder);
% Update Worst Cost
WorstCost=max(WorstCost,pop(end).Cost);
% Truncation
pop=pop(1:nPop);
Costs=Costs(1:nPop);
% Store Best Solution Ever Found
BestSol=pop(1);
% Store Best Cost Ever Found
BestCost(it)=BestSol.Cost;
% Show Iteration Information
disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);
end
برای دانلود سورس کد کامل الگوریتم ژنتیک پیوسته محصول را خریداری کنید به محض خرید لینک دانلود در دسترس خواهد بود.
سورس کد الگوریتم ژنتیک پیوسته در نرم افزار Matlab نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت اثر توسط پی استور تضمین میشود و دارای نشان تضمین کیفیت پی استور میباشد. برای دانلود اثر مذکور آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.
اطلاعات و جزئیات کامل این محصول
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
جهت تسلط عمیقتر و تکمیل مهارتهای خود، یادگیری این سرفصلها پیشنهاد میشود.
هزینه سفارش:
۲۰۸,۰۰۰ تومان قیمت اصلی: ۲۰۸,۰۰۰ تومان بود.۸۰,۰۰۰ تومانقیمت فعلی: ۸۰,۰۰۰ تومان.
دیدگاهها و نظرات
سینا ابراهیمی
ممنون از سایت خوبتون. من چطور می تونم این الگوریتم رو تو مسئله تعیین تعداد بهینه توربین ها استفاده کنم؟
مدیریت و پشتیبانی
با سلام
در استفاده از الگوریتم ژننیک برای مسائل بهینه سازی 2 مسئله مهم است.
1- نگاشت مسئله
2-تعیین تابع تناسب
در نگاشت مسئله باید ابتدا مسئله بصورت یک کروموزوم کد گذاری شود. چگونگی انجام این کار توسط شما باید ایجا بشه تابع Create Model در این سورس کد نحوه تبدیل مسئله به کروموزوم رو نشون میده. در تعیین تابع تناسب نیز باید مشخص کنید جوابی که مثلا یک کروموزوم میده با کروموزم دیگه چه ارزشی داره یا نحوه مقایسه دو جواب با تابع تناسب که CostFun هست انجام میشه.
بقیه کدها همون کدهای ژنتیک هستن و برای هر مسئله ای یکسان هست.