资源简介
采用c#编写的三元函数求最值问题,例子是有三个未知数,且三个未知数有取值范围,依据遗传算法求得三元函数的最大值
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ycsf3x_new
{
class Program
{
private const double PI = 3.1415926535897932384;
private double[] m_minValue;//变量取值范围-最小值
private double[] m_maxValue;//变量取值范围-最大
private double[] m_length;//m_maxValue-m_minValue
private int[] m_codingLength;//编码长度 [131412]
private int m_populationNumber;//种群大小 50
private int dimention;//维数
private string[][][] m_populations;//种群
private string[][] m_population;//种群123...
private double[][] m_doublePopulation;
private double[] m_double;//每个种子的实数值
private double[] m_fitness;//适应度
private double m_crossRate;//交叉概率
private double m_varRate;//变异概率
private double m_winFitness;//获胜适应度
private int popLength;//染色体长度
public string[][] WinCoding { get; set; }
public double[] WinValue { get; set; }
public Program(int populationNumber int populationDimension double[] minValue double[] maxValue double crossRate double varRate)
{
m_minValue = minValue;//区间范围最小值数组
m_maxValue = maxValue; //区间范围最大值数组
m_length = new double[maxValue.Length];//区间长度
for (var i = 0; i < maxValue.Length; i++)
{
m_length[i] = maxValue[i] - minValue[i];
}
m_populationNumber = populationNumber;//种群大学
dimention = populationDimension;//未知数个数
popLength = 15; //染色体长度 暂定15
m_crossRate = crossRate;//交叉概率
m_varRate = varRate;//变异概率
}
///
/// 初始化种群
///
public void InitPopulation()
{
m_codingLength = GetCodingLength(m_length 3);
m_populations = new string[m_populationNumber][][];
for (int i = 0; i < m_populationNumber; i++)
{
m_population = new string[dimention][];
for (var j = 0; j < dimention; j++)
{
m_population[j] = GetRandomBinaryArray(m_codingLength[j] i);
//foreach (var c in m_population[j])
//{
// Console.Write(c);
//}
//Console.WriteLine();
}
m_populations[i] = m_population;
//Console.WriteLine();
}
}
public string[] GetRandomBinaryArray(int count int ii)
{
Random rnd = new Random(DateTime.Now.Millisecond + ii);//添加种子确保每次取得0-1不一样
byte[] keys = new byte[count];
rnd.NextBytes(keys);
List items = new List();
for (int i = 0; i < count; i++)
{
if (keys[i] > 127)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-12 16:49 ycsf3x_new\
目录 0 2018-09-12 16:49 ycsf3x_new\.vs\
目录 0 2018-09-12 16:49 ycsf3x_new\.vs\ycsf3x_new\
目录 0 2018-09-12 16:49 ycsf3x_new\.vs\ycsf3x_new\v14\
文件 36864 2018-09-13 09:46 ycsf3x_new\.vs\ycsf3x_new\v14\.suo
目录 0 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\
文件 189 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\App.config
文件 13805 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\Program.cs
目录 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\Properties\
文件 1328 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\Properties\AssemblyInfo.cs
目录 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\bin\
目录 0 2018-09-12 18:10 ycsf3x_new\ycsf3x_new\bin\Debug\
文件 9728 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.exe
文件 189 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.exe.config
文件 24064 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.pdb
文件 22696 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.vshost.exe
文件 189 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.vshost.exe.config
文件 490 2018-04-12 07:35 ycsf3x_new\ycsf3x_new\bin\Debug\ycsf3x_new.vshost.exe.manifest
目录 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\obj\
目录 0 2018-09-13 09:10 ycsf3x_new\ycsf3x_new\obj\Debug\
文件 6809 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
目录 0 2018-09-13 11:52 ycsf3x_new\ycsf3x_new\obj\Debug\TempPE\
文件 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 562 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\obj\Debug\ycsf3x_new.csproj.FileListAbsolute.txt
文件 1922 2018-09-13 09:10 ycsf3x_new\ycsf3x_new\obj\Debug\ycsf3x_new.csprojResolveAssemblyReference.cache
文件 9728 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\obj\Debug\ycsf3x_new.exe
文件 24064 2018-09-13 09:44 ycsf3x_new\ycsf3x_new\obj\Debug\ycsf3x_new.pdb
文件 2680 2018-09-12 16:49 ycsf3x_new\ycsf3x_new\ycsf3x_new.csproj
文件 997 2018-09-12 16:49 ycsf3x_new\ycsf3x_new.sln
............此处省略0个文件信息
- 上一篇:c#窗体编写的简单的聊天室系统
- 下一篇:C#把打印中的文件输出为PDF
相关资源
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
- C# 使用ListView控件实现图片浏览器(源
- C#简单窗体聊天程序
- C#指纹识别系统程序 报告
- c# 高校档案信息管理系统
- c#向word文件插入图片
- C#左侧导航菜单(动态生成)
- C#TCP 通信(TCP发送16进制)
- C# sql实现批量导入数据到数据库
评论
共有 条评论