fekre-bekr,learning,source,سورس,سورس رایگان,آموزش,اخبار,فناوری اطلاعات,mvc,.net,ساری,آموزشگاه,asp.net,c#.net,programing,c++,vb,آموزش برنامه نویسی,دانلود

اشتراک در سایت


مطالب تصادفی
اخبار و مقالات در فکر بکر آموزش publish کردن برنامه های Asp.net core بر روی سرور iis

در این آموزش ابتدا یک پروژه ساده با استفاده از asp.net core 2.1 ایجاد میکنیم و سپس آنرا بر روی سرور iis قرار خواهیم داد. ...


اخبار و مقالات در فکر بکر آموزش رسم نمودار در Asp.net

عرض سلام خدمت کاربران فکر بکر – قبل از هرچیز بابت تاخیر در ارائه مطالب بخاطر مشغله کاری از شما عزیزان عذر خواهی میکنم.در این آمو ...


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

در این ساعت از فکر بکر بازی زیبای Minesweeper که از بازیهای پرطرفدار در سیستم عامل ویندوز هست را میتوانید از فکر بکر دانلود نمایی ...


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

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


اخبار و مقالات در فکر بکر پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش دوم)

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


اخبار و مقالات در فکر بکر سورس برنامه ب.م.م و ک.م.م در c++

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


اخبار و مقالات در فکر بکر آموزش اتصال داده ها بین دو کنترل DropDownList در Asp.netMVC بصورت Ajax

در این قسمت به آموزش اتصال داده ها بین دو کنترل DropDownList مانند آنچه که جهت نمایش شهر ها بر اساس استان انتخاب شده مورد استفاد ...


اخبار و مقالات در فکر بکر آموزش ایجاد برنامه نصب (setup) قسمت اول

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


اخبار و مقالات در فکر بکر آموزش ایجاد آدرسهای کاربرپسند(user friendly URLs) در Asp.net MVC

با سلام – در این مقاله به آموزش ایجاد آدرسهای کاربر پسند در برنامه های Asp.net خواهم پرداخت User friendly بودن URLs فقط برای کا ...


اخبار و مقالات در فکر بکر آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc

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


اخبار و مقالات در فکر بکر قالب پنل ادمین

جهت دانلود قالب پنل مدیریتی به ادامه مطلب مراجعه نمایید ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش فایلها در سی شارپ

در این برنامه به حل مساله کتاب جهت ذخیره در فایل متنی با استفاده از کادر محاوره ای savefileDialog می پردازیم . لطفا به ادامه مطل ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش رویدادهای ماوس (Windows Form) در سی شارپ

جهت مشاهده سوال و دانلود سورس آن لطفا به ادامه مطلب توجه نمایید. (حرکت دادن فرم با استفاده ار رویدادهای ماوس) ...


اخبار و مقالات در فکر بکر دانلود کتاب Entity Framework Code First Succinctly

جهت دانلود کتاب به ادامه مطلب توجه نمایید ...


پیوندها
5 (1)

الگوریتم‌های ژنتیک (با نماد اختصاری GA) تکنیک جستجویی در علم رایانه برای یافتن راه‌حل تقریبی برای بهینه‌سازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتم‌های تکامل است که از تکنیک‌های زیست‌شناسی فرگشتی مانند وراثت و جهش استفاده می‌کند. این الگوریتم برای اولین بار توسط جان هنری هالند معرفی شد.
گروه : ژنتیک
تاریخ انتشار: 1396/06/18

فکر بکر

الگوریتم‌های ژنتیک  (با نماد اختصاری GA) تکنیک جستجویی در علم رایانه برای یافتن راه‌حل تقریبی برای بهینه‌سازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتم‌های تکامل است که از تکنیک‌های زیست‌شناسی فرگشتی مانند وراثت و جهش استفاده می‌کند. این الگوریتم برای اولین بار توسط جان هنری هالند معرفی شد.

مسئله چند وزیر یک معمای شطرنجی و ریاضیاتی است که بر اساس آن باید n وزیر شطرنج در یک صفحه n×n شطرنج به‌گونه‌ای قرار داده شوند که هیچ‌یک زیر ضرب دیگری نباشند. با توجه به اینکه وزیر به‌صورت افقی، عمودی و اُریب حرکت می‌کند، باید هر وزیر را در طول، عرض و قطر متفاوتی قرار داد . 

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

ابتدا یک پروژه از نوع ویندوزی ایجاد میکنیم . و سپس متغیر و اشیای اولیه مساله را بصورت زیر ایجاد میکنیم.

        const int n = 8;
        Panel[,] pnl = new Panel[n, n];
        const  int p = 100;
        int[,] firstGen = new int[p, n+1];
        int[,] secondGen = new int[p, n+1];

در قطعه کد بالا متغیرهایی برای ساختن مجموعه ژنهای نسل جاری و آینده را ایجاد نمودیم .

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

  Random r = new Random();
            for(int i=0;i<p;i++)
            {
              
                for(int j=0;j<n;j++)
                {
                    firstGen[i, j] = r.Next(0, n);
                 
                }
              
            }

تابع fitness جهت ارزیابی کروموزومها و تابع sort جهت مرتب سازی آنها را بصورت زیر درج کنید.

  public void Fitness(int[,] gen)
        {
            int count = 0;
            for(int i=0;i<p;i++)
            {
                count = 0;
                for(int j=0;j<n;j++)
                {
                    for(int l=j+1;l<n;l++)
                    {
                        if(gen[i,j]==gen[i,l])
                        {
                            count++;
                        }
                        if(Math.Abs(j-l)==Math.Abs(gen[i,j]-gen[i,l]))
                        {
                            count++;
                        }
                    }
                }
                gen[i, n ] = count;
            }
        }
      
        public void Sort(int[,]gen)
        {
            int temp;
            for(int i=0;i<p-1;i++)
            {
                for(int j=i+1;j<p;j++)
                {
                    if (gen[i, n] > gen[j, n])
                    {
                        for(int l=0;l<=n;l++)
                        {
                            temp = gen[i, l];
                            gen[i, l] = gen[j, l];
                            gen[j, l] = temp;
                        }
                    }
                }
            }
        }

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

   bool tf = true;
           // bool ft = false;
            int ftt = 0;
            int t = 0;
            while (tf)
            {
                t++;
                for (int i = 0; i < (p / 2); i++)
                {
                    for (int l = 0; l < n; l++)
                    {
                        secondGen[i, l] = firstGen[i, l];
                    }
                }
                for (int i = 0; i < (p / 2); i += 2)
                {
                    for (int l = 0; l <= n; l++)
                    {
                        if (l < n / 2)
                        {
                            secondGen[i + (p / 2), l] = firstGen[i, l];
                            secondGen[i + (p / 2) + 1, l] = firstGen[i + 1, l];
                        }
                        else
                        {
                            secondGen[i + (p / 2), l] = firstGen[i + 1, l];
                            secondGen[i + (p / 2) + 1, l] = firstGen[i, l];
                        }
                    }
                    secondGen[i, r.Next(n)] = r.Next(n);
                    secondGen[i + 1, r.Next(n)] = r.Next(n);
                }
              
              
                Fitness(secondGen);
                Sort(secondGen);
              
                t++;
                if(secondGen[ftt,n]==0)
                {
                    pic0.Top = 10;
                    pic0.Left = 10;
                    pic1.Top = 10;
                    pic1.Left = 10;
                    pic2.Top = 10;
                    pic2.Left = 10;
                    pic3.Top = 10;
                    pic3.Left = 10;
                    pic4.Top = 10;
                    pic4.Left = 10;
                    pic5.Top = 10;
                    pic5.Left = 10;
                    pic6.Top = 10;
                    pic6.Left = 10;
                    pic7.Top = 10;
                    pic7.Left = 10;
                    // ftt++;
                    this.Text=(t.ToString());
                    int col1 = secondGen[0, 0];
                    pnl[0, col1].Controls.Add(pic0);
                    int col2 = secondGen[0, 1];
                    pnl[1, col2].Controls.Add(pic1);
                    int col3 = secondGen[0, 2];
                    pnl[2, col3].Controls.Add(pic2);
                    int col4 = secondGen[0, 3];
                    pnl[3, col4].Controls.Add(pic3);
                    int col5 = secondGen[0, 4];
                    pnl[4, col5].Controls.Add(pic4);
                    int col6 = secondGen[0, 5];
                    pnl[5, col6].Controls.Add(pic5);
                    int col7 = secondGen[0, 6];
                    pnl[6, col7].Controls.Add(pic6);
                    int col8 = secondGen[0, 7];
                    pnl[7, col8].Controls.Add(pic7);
                    tf = false;
                    button1.Enabled = true;
                  
                }
                else
                {
                    firstGen = secondGen;
                }
            }
        

شکل خروجی برنامه :

n وزیر 

مطلب مشابهی وجود ندارد
شما اولین نفری باشید که نظر میدهید

rfmhkh

آموزش کار با کوکی ها (Cookie) در Asp.net core -------- آموزش رمزنگاری فایلها در asp.net core -------- مقایسه واحدهای اندازه گیری rem و em در css -------- آشنایی با مفهوم Generic در C#.net -------- نحوه خواندن اطلاعات از فایل appsetting.json در Asp.net Core -------- آموزش استفاده از CQRS و Mediator در Asp.Net Core -------- نحوه ایجاد image checkbox در html css -------- عملیات crud و WebApi در Asp.net 6 -------- آموزش ایجاد custom model binder در Asp.net core -------- آموزش استفاده از Log4net در Asp.net 5 -------- آموزش پیاده سازی UnitOfWork در Asp.net Core قسمت اول -------- پیاده سازی Repository Pattern بصورت Generic Class -------- وارد کردن فقط حروف فارسی و جلوگیری از ورود حروف فارسی در تکست باکس با استفاده از JQuery -------- سورس استفاده از کامپوننت Roxy File manager در Asp.net core -------- آموزش ساخت صفحه Page Not Found (404) در Aspnet core -------- آموزش ایجاد Tag Helper سفارشی در Asp.net core -------- آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core -------- آموزش نحوه Upload و Download در Asp.net core 2 -------- آموزش dependency injection در Asp.net core 2 -------- آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server -------- آموزش استفاده از Bundler & Minifier در Asp.Net Core -------- مروری بر Identity در Asp.net core2.1 (بخش دوم) -------- مروری بر Identity در Asp.net core2.1 (بخش اول) -------- آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID) -------- آموزش publish کردن برنامه های Asp.net core بر روی سرور iis -------- پیاده سازی مسیریابی با استفاده از الگوریتم پیمایش اول سطح یا جستجوی اول سطح (BFS) در سی شارپ -------- آشنایی با SignalR در Asp.net core -------- آموزش استفاده از کلاس SeedData در Asp.net Core -------- قالب سایت فروشگاهی -------- آموزش ایجاد برنامه نصب (setup) قسمت سوم -------- آموزش ایجاد برنامه نصب (setup) قسمت دوم -------- آموزش ایجاد برنامه نصب (setup) قسمت اول -------- آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0 -------- آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net -------- حل مساله n وزیر با استفاده از الگوریتم ژنتیک و بصورت گرافیکی -------- آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc -------- آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc -------- آموزش ایجاد breadcrumb با استفاده از sitemap در MVC -------- آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ -------- آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket) --------

ابتدای صفحه