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

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


مطالب تصادفی
اخبار و مقالات در فکر بکر آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc

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


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

در این آموزش به نحوه استفاده از Log4net جهت بررسی خطاهای ایجاد شده خواهیم پرداخت . ...


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

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


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

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


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

در مراحل قبلی نحوه ایجاد فایل configuration و فایل نصب sql server و همچنین ایجاد setup برای نرم افزاری که باید در سیستم مشتری نصب ...


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

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


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

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


اخبار و مقالات در فکر بکر آموزش کار با کوکی ها (Cookie) در Asp.net core

برا ی ذخیره اطلاعات روشهای مختلفی وجود دارد - در گذشته ، برنامه نویسان برای ذخیره ی اطلاعات معمولا از سرور استفاده میگردند. اما ...


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

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


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

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


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

در این بخش به آموزش چگونگی درج رکوردهای پیشفرض درون جداول در هنگام ایجاد دیتابیس با استفاده از روش code first در محیط Asp.net Cor ...


اخبار و مقالات در فکر بکر آموزش dependency injection در Asp.net core 2

تزریق وابستگی یکی از مباحث مبهم برای برنامه نویسانی که به تازگی با این عنوان آشنا شده اند می باشد.اما باید در نظر داشته باشید که ...


اخبار و مقالات در فکر بکر آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID)

در این اموزش هدف ایجاد کلاس و اشیاء با کمترین وابستگی جهت بهینه کردن تست و آسان نمودن توسعه نرم افزار می باشد. لذا برنامه نویس با ...


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

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


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

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

isry5i

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

ابتدای صفحه