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

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


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

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


اخبار و مقالات در فکر بکر آموزش ساخت صفحه تماس با ما بصورت Ajax در Asp.net MVC5

در این برنامه می خواهیم به آموزش نحوه ارسال اطلاعات بدون لود یا refresh شدن صفحه به سمت سرور در Asp.net MVC بپردازیم. ...


اخبار و مقالات در فکر بکر آموزش ساخت صفحه Page Not Found (404) در Aspnet core

در این بخش به اموزش نحوه مدیریت خطا و هدایت کاربر به صفحه Page Not Found (404) در Aspnet core می پردازیم. یکی از مشکلات مهمی ک ...


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

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


اخبار و مقالات در فکر بکر پیاده سازی Repository Pattern بصورت Generic Class

Repository یک design pattern می باشد که بعنوان یک واسط جهت کار با داده ها ودرون لایه Data Access Layer .که باعث میشوند منطق م ...


اخبار و مقالات در فکر بکر آشنایی با Asp.net mvc6 بصورت پروژه عملی #2

با سلام - در این قسمت به ادامه مبحث قبلی و آشنایی بیشتر با net core1 و mvc6 می پردازیم . لطفا به ادامه مطلب توجه نمایید. ...


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

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


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

در این مقاله به آموزش نمایش داده ها با استفاده از Grid MVC با قابلیت مرتب سازی داده ها خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر مروری بر Identity در Asp.net core2.1 (بخش اول)

ASP.NET Core Identity یک سیستم جامع جهت مدیریت کاربران و نقشها و همینطور ورود و خروج در برنامه های ASP.NET Core می باشد. کاربرا ...


اخبار و مقالات در فکر بکر آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server

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


اخبار و مقالات در فکر بکر فایل pdf آموزش کامپوننت Backgroundworker برای برنامه نویسی بصورت همزمان

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


اخبار و مقالات در فکر بکر آموزش کامل Web Api2 در MVC با عملیات CRUD

با سلام خدمت تمامی کاربران فکر بکر در این مقاله سعی نمودم تا با ارائه مثال عملی به آموزش کامل Web Api بپردازم. قبل از هرچیز باید ...


اخبار و مقالات در فکر بکر آموزش نحوه فارسی سازی kendo ui 2016

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


اخبار و مقالات در فکر بکر آموزش نحوه ایجاد Extention method در C#

در این بخش با ارائه مثال عملی تبدیل تاریخ میلادی به شمسی به آموزش Extention method می پردازیم. ...


پیوندها
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 وزیر 

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

izOpf2

آموزش کار با کوکی ها (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) --------

ابتدای صفحه