⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chromosome.cs

📁 Computational Intelligence IRIS dataset Classification
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace CIProject
{
    public class Chromosome
    {
        public Chromosome(int size)
        {
            geneCount = size;
            genes = new double[geneCount];
            for (int index = 0; index < geneCount; index++)
            {
                genes[index] = 0.0;
            }
        }

        public Double this[int index]
        {
            get
            {
                return genes[index];
            }
            set
            {
                genes[index] = value;
            }
        }

        public Chromosome[] CrossOver(int centromere, Chromosome c)
        {
            if (c.geneCount != geneCount)
            {
                return null;
            }
            Chromosome c1 = new Chromosome(geneCount);
            Chromosome c2 = new Chromosome(geneCount);
            for (int index = 0; index < centromere; index++)
            {
                c1[index] = c[index];
            }
            for (int index = centromere; index < geneCount; index++)
            {
                c1[index] = genes[index];
            }
            for (int index = 0; index < centromere; index++)
            {
                c2[index] = genes[index];
            }
            for (int index = centromere; index < geneCount; index++)
            {
                c2[index] = c[index];
            }
            return new Chromosome[] { c1, c2 };
        }

        public void Mutation()
        {
            Random random = new Random();
            int i1 = random.Next(0, geneCount);
            int i2 = random.Next(0, geneCount);
            while (i1 == i2)
            {
                i2 = random.Next(0, geneCount);
            }

            Double gene = this.genes[i1];
            this.genes[i1] = this.genes[i2];
            this.genes[i2] = gene;
        }

        public Double[] ToArray()
        {
            double[] array = new double[geneCount];
            for (int i = 0; i < geneCount; i++)
            {
                array[i] = genes[i];
            }
            return array;
        }

        private int geneCount;
        private Double[] genes;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -