شبیه‌سازی شبکه‌های بی سیم و کامپیوتری
شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا
  • شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا

مشخصات بلاگ
شبیه‌سازی شبکه‌های بی سیم و کامپیوتری

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

شماره تماس: 09147082079-0098
آیدی تلگرامی:https://t.me/MuosSA_NbO
جی میل :mo30no@gmail.com

تمامی کدهای این وبلاگ در حال حاضر به زبان متلب می باشد

«آنچه می‌دانیم ناچیز و آنچه نمی‌دانیم عظیم و وسیع است»
$$پیر سیمون لاپلاس$$

سه شنبه, ۱۷ دی ۱۳۹۸، ۱۲:۲۰ ب.ظ

نحوه نوشتن یک تابع فیتنس(making a fitness function )

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

به عنوان یک مثال ساده برای تابع فیتنس برای ماکزیمم سازی  را  می‌توان به شکل زیر اورد.

 فقط حواستون باشه، برای نوشتن تابع فیتنس برای مینیمم سازی باید مقدار اولیه بردار پاسخ را برابر بی نهایت یا inf قرار بدید و برای ماکزیمم سازی این مقدار را برابر با 0 یا حداقل مقدار قرار بدید.

 

clc
clear;
close all;


[X,Y,Z] = peaks(100);
[val,ind]=min(Z(:));
v.val=val;
v.ind=ind;
cn=0;
hs=figure('name' ,  ['period: '  num2str(cn) ' of '  num2str((length(X(:))) )   ' curen  value:  '  num2str(v.val(end)),  ' real max value:  '  num2str( max(Z(:)))] );
 subplot(1,2,1);surf(X,Y,Z);hold on
 subplot(1,2,1);plot3(X(ind),Y(ind),Z(ind),'r*');hold on

while(true)
     ind= randi(length(X(:)),1);
     if  v.val(end)<Z(ind)
      v.val(end+1)=Z(ind);

          v.ind(end+1)= ind ;
 subplot(1,2,1);plot3(X(v.ind),Y(v.ind),Z(v.ind),'r*');hold on ; 
  subplot(1,2,2);plot3(X(v.ind),Y(v.ind),Z(v.ind),'r-*');hold on
  

     else
    disp('');
     end
      cn=cn+1;
 

     
 
     pause(0.002)

    if cn>=length(X(:)) || v.val(end)==max(Z(:))
           break;
    end
     hs.Name=['period: '  num2str(cn) ' of '  num2str((length(X(:))) )   ' curen  value:  '  num2str(v.val(end)),  ' real max value:  '  num2str( max(Z(:)))];
end

 

خروجی کد بالا به شکل زیر خواهد بود:

 

 

 

موافقین ۰ مخالفین ۰ ۹۸/۱۰/۱۷
موسی حسن زاده

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی