• 大小: 26KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: C#
  • 标签: C#  

资源简介

常用的7种 C# 遗传算法源码实例集 本压缩包内收集了一些C#常用的7种遗传算法,这些算法主要是保存超个体的基本遗传算法、仿生双倍体遗传算法、人工双倍体遗传算法、保存历史最优解的遗传算法、保存历史最优解的仿生双倍体遗传算法等,另外,对随机数的产生机制进行了优化,在内层循环中也能产生高质量的随机数。部分功能可通过源码爱好者测试截图中看出,这里不再详述。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//Download by http://www.codefans.net
namespace main
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int _Max_Value = 31;//定义域上界
        int _Min_Value = 0;//定义域下界
        int _chrom_Len = 5;//染色体长度
        int _G_size = 30;
        int _Evolution_Times = 20;

        int _p_det = 1;
        double _Mutation_Rate = 0.02;

        string[] _source_G_Only_One;
        int _flag_source_only = 0;

        string[] _old_G; 
        string[] _seleted_G; //选择到的种群
        string[] _new_G; //交叉后的下一代
        int[] _old_value; 
        double[] _old_p;

        double _best_p = 0;
        string _best_Individual;

        int _p_times = 0;
        const int _p_rate = 5;

        string[] _p1_data;
        string[] _p2_data;
        string[] _p3_data;
        string[] _p4_data;
        string[] _p5_data;
        string[] _p6_data;
        string[] _p7_data;

        bool _Flag_Can_Draw_P1 = false;
        bool _Flag_Can_Draw_P2 = false;
        bool _Flag_Can_Draw_P3 = false;
        bool _Flag_Can_Draw_P4 = false;
        bool _Flag_Can_Draw_P5 = false;
        bool _Flag_Can_Draw_P6 = false;
        bool _Flag_Can_Draw_P7 = false;

        string[] _old_G_1;
        string[] _old_G_2;
        string[] _new_G_1;
        string[] _new_G_2;
        string[] _select_G_1;
        string[] _select_G_2;

        int[] _cross_proj;

        double[] _seed = new double[100];
        int _k_seed = 0;

        double _best_func = 0;
        string _best_all = ““;

        string str_goal=““;

        int _sum_time = 0;
        int _sum_1 = 0;
        int _sum_2 = 0;
        int _sum_3 = 0;
        int _sum_4 = 0;
        int _sum_5 = 0;
        int _sum_6 = 0;
        int _sum_7 = 0;

        //-----------------------------------------------------------------------------------------------------------
        private void _Init_PictureBox(int mode)
        {
            //-----------------------------------------------
            if (mode == 1)
            {
                _p1_data = new string[_p_times _G_size];
                //
                pictureBox1.Width = _p_rate * (_Max_Value - _Min_Value + 2) * _p_times;
                pictureBox1.Height = _p_rate * (_G_size + 2);
            }
            //-----------------------------------------------
            if (mode == 2)
            {
                _p2_data = new string[_p_times _G_size];
                //
                pictureBox2.Width = _p_rate * (_Max_Value - _Min_Value + 2) * _p_times;
                pictureBox2.Height = _p_rate * (_G_size + 2);
                pictureBox2.Left = pictureBox1.Left;
                pictureBox2.Top = pictureBox1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

----------- ---------  ---------- -----  ----

               172371                    20


评论

共有 条评论