• مقالات آموزشی
    • آموزش برنامه نویسی
    • آموزش الگوریتم
    • آموزش شبکه های کامپیوتری
    • آموزش های عمومی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپوینت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • لیست قالب آماده HTML
  • دانلود رایگان
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین
  • سفارش تدریس آنلاین
  • آموزش برنامه نویسی
  • آموزش الگوریتم
  • آموزش شبکه
  • آموزش عمومی

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • درباره ما
  • تماس با ما
  • سفارش تدریس آنلاین
پی استور
0

ورود و ثبت نام

مقالات آموزشی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپونت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
      • عمومی
      • مشاهیر و اشخاص
      • واقعیت مجازی
      • طراحی سایت
      • برنامه نویسی
      • علوم کامپیوتر
      • اینترنت اشیاء
      • سیستم عامل
      • ارز دیجیتال
      • کسب و کار
      • تکنولوژی
      • علوم
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • قالب آماده HTML
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین

پیاده سازی الگوریتم ژنتیک واقعی یا پیوسته در متلب

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

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

cropped-fav2.png

برنامه‌نویس: تیم برنامه نویسی پی استور

متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی

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

الگوریتم ژنتیک

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

الگوریتم ژنتیک واقعی که بر اساس ایده ي تکامل بیولوژیکی در طبیعت عمل می نمایند، بر روي جمعیتی از راه حل های بالقوه یا کروموزوم ها که هر یک می توانند به‌عنوان پاسخی از مسئله تلقی شوند، با اعمال عملگرهای ژنتیکی به جستجوي راه حل نهایی می پردازند. در الگوریتم ژنتیکی، بسیاري از مکانیزم هایی که در زیست شناسی وجود دارد، نظیر انتخاب ژن برتر، ترکیب ژن ها، جهش ژن ها، مهاجرت افراد جمعیت، محلی بودن گونه ها و … شبیه سازي می شوند. در این الگوریتم ها، جستجو بر روي مجموعه هايی از راه حل ها به‌صورت موازي انجام می شود، درحالی‌که در روش هاي سنتی جستجو به‌صورت ترتیبی است.

نحوه کار الگوریتم

در آغاز الگوریتم، تعدادي از افراد به‌عنوان جمعیت اولیه و معمولاً به‌صورت تصادفی ساخته‌شده و معیاري از کیفیت به نام تابع هدف یا برازندگی براي تک  تک آن ها ارزیابی می شود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدي با انتخاب والدین بر اساس میزان برازندگی آن ها تولید می شود. در هر نسل، بهترین هاي آن نسل انتخاب می شوند و پس از زادوولد، مجموعه جدیدي از فرزندان را تولید می کنند.

کروموزوم هاي موجود در جمعیت بر اساس مقدار برازندگی به‌عنوان والد انتخاب می شوند. سپس تولید مثل، بین جفت کروموزوم ها انجام می گیرد تا فرزندان ایجاد شوند و فرزندان با احتمالی ثابت دچار جهش می شوند. سپس میزان برازندگی فرزندان جدید محاسبه‌شده و جمعیت جدید، از جایگزینی فرزندان با والدین ایجاد می شود و جمعیت ایجادشده جدید به‌عنوان نسل بعدي شناخته می‌شود و فرایند تکرار می شود. در این فرایند، افراد مناسب تر با احتمال بیشتري در نسل هاي بعد باقی خواهند ماند و این فرایند تا برقرار شدن شرط خاتمه تکرار می شود.

الگوریتم زمانی پایان خواهد یافت که بهبودي بر روي جواب ها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود. مراحل کلی یک الگوریتم ژنتیک می تواند به‌صورت شکل زیرباشد.

صورت کلی یک الگوریتم ژنتیک
صورت کلی یک الگوریتم ژنتیک

تعریف‌ها

الف) ژن: مقدار کد شده هر متغیر را ژن گویند.

ب)کروموزوم: به رشته یا دنباله اي از ژن ها که به‌عنوان شکل کد شده یک جواب ممکن (مناسب یا نامناسب) از مسئله موردنظر به کار می رود کروموزوم گویند.

ج) جمعیت: در هر مرحله تکرار از الگوریتم ژنتیکی تعدادي مشخص از کروموزوم ها مورد ارزیابی قرار می گیرد. به مجموعه این کروموزوم ها جمعیت می گویند.

د) عدد برازندگی: مناسب بودن یا نبودن را با معیاري که باهدف(مورد بهینه‌سازی) رابطه دارد می‌سنجند.

ه) عملگر جابجایی یا ترکیب Crossover: این عملگر براي زوجی از کروموزوم ها اعمال می شود. نوعی از این عملگر، دو کروموزوم را به‌طور تصادفی از یک نقطه شکسته و بخش هاي شکسته دو کروموزوم را جابه جا می کند. بدین ترتیب دو کروموزوم جدید به وجود می آید. به دو کروموزوم اولیه کروموزوم هاي والد و به دنباله هاي جدید هنگامی‌که عملگر جابه جایی بر آن‌ها اعمال گردد دنباله هاي فرزند گویند.

و) عملگر جهش: این عملگر روي یک دنباله منفرد عمل می کند به‌این‌ترتیب که با احتمال کوچکی به نام احتمال جهش هر ژن از کروموزوم ها را تغییر می دهد.

ز) کروموزوم فرزند: به دنباله اي که پس از عمل جابه جایی و عمل جهش به دست می آید کروموزوم فرزند می گویند.

ح) جایگذاري: پس‌ازآنکه فرزندان جدید، با استفاده از جمعیت قدیمی ساخته شدند و میزان شایستگی آن‌ها نیز تعیین گردید، می بایست یک نسل جدید از میان فرزندان و والدین موجود انتخاب شوند.
ط) عملگر انتخاب: براي ایجاد افراد نسل جدید، از عملگر انتخاب استفاده می‌شود. اولین قدم در این راه تعیین شایستگی تک‌تک افراد جمعیت هست.

ي) مرحله تولید: به هر بار تولید یک جمعیت جدید یک مرحله تولید گویند.

سورس کد الگوریتم ژنتیک واقعی در متلب

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 2017 نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.

گارنتی 7 روزه بازگشت هزینه

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

  • ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ می‌شود.
  • و یا 80 درصد مبلغ پرداختی به حساب بانکی شما عودت داده می‌شود.

مباحث مرتبط با الگوریتم ژنتیک

پاورپوینت الگوریتم ژنتیک GA
پاورپوینت الگوریتم ژنتیک GA
حل مسئله TSP با الگوریتم ژنتیک GA در متلب
حل مسئله TSP با الگوریتم ژنتیک GA در متلب
مسئله هشت وزیر با الگوریتم ژنتیک GA در متلب
مسئله هشت وزیر با الگوریتم ژنتیک GA در متلب
حل مسئله 8 وزیر با الگوریتم ژنتیک در سی شارپ #C
حل مسئله 8 وزیر با الگوریتم ژنتیک در سی شارپ #C
آموزش شبکه عصبی با الگوریتم ژنتیک GA در متلب
آموزش شبکه عصبی با الگوریتم ژنتیک GA در متلب
کد الگوریتم ژنتیک در پایتون Python
کد الگوریتم ژنتیک در پایتون Python
تعیین درخت پوشای مینیمم با الگوریتم ژنتیک در متلب
تعیین درخت پوشای مینیمم با الگوریتم ژنتیک در متلب
پیاده سازی الگوریتم ژنتیک باينری Binary در متلب
پیاده سازی الگوریتم ژنتیک باينری Binary در متلب

تاکنون 256 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.

نظرات و دیدگاه ها
  • سینا ابراهیمی
    12 اسفند 1397
    امتیاز 5 از 5
    پاسخ

    ممنون از سایت خوبتون. من چطور می تونم این الگوریتم رو تو مسئله تعیین تعداد بهینه توربین ها استفاده کنم؟

    • مدیریت و پشتیبانی
      12 اسفند 1397
      پاسخ

      با سلام
      در استفاده از الگوریتم ژننیک برای مسائل بهینه سازی 2 مسئله مهم است.
      1- نگاشت مسئله
      2-تعیین تابع تناسب
      در نگاشت مسئله باید ابتدا مسئله بصورت یک کروموزوم کد گذاری شود. چگونگی انجام این کار توسط شما باید ایجا بشه تابع Create Model در این سورس کد نحوه تبدیل مسئله به کروموزوم رو نشون میده. در تعیین تابع تناسب نیز باید مشخص کنید جوابی که مثلا یک کروموزوم میده با کروموزم دیگه چه ارزشی داره یا نحوه مقایسه دو جواب با تابع تناسب که CostFun هست انجام میشه.
      بقیه کدها همون کدهای ژنتیک هستن و برای هر مسئله ای یکسان هست.

قوانین ثبت دیدگاه

  • لطفاً دیدگاه های خود را فارسی تایپ کنید.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
  • سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.

لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌بندی موضوعی: الگوریتم‌های تکاملی برنامه نویسی متلب

قیمت 29,000 تومان

افزودن به علاقه مندی ها
امتیاز
5.00 از 1 رأی
5.00 1 رای
29,000 تومان

تاریخ انتشار: 13 بهمن 1397
تاریخ بروزرسانی: 10 خرداد 1398
حجم فایل: 2.8 کیلوبایت
فرمت فایل m. در قالب متلب
نسخه: 1.0
شناسه اثر: ندارد
هماهنگی با: Matlab 2017 و بالاتر
دانلود شده توسط: 256 نفر

1 بازخورد (مشاهده نظرات)

قیمت: 29,000 تومان

تماس با ما
  • دفتر پشتیبانی: 04144225175 (ساعت کاری 8:00 الی 16:00)
  • آی دی تلگرام: programerPstore
درباره پی استور

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

مجوز های اخذ شده
اینماد نشان ملی   پروانه نشر دیجیتال
  • حساب کاربری من
  • سوالات متداول
  • راهنمای خرید و دانلود
پی استور
  • همکاری با ما
  • قوانین و مقررات
  • حریم خصوصی
تمامی حقوق برای پی استور محفوظ است.
keyboard_arrow_up