资源简介
采用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#把打印中的文件输出为PDF
- c#窗体编写的简单的聊天室系统
-
上位机与欧姆龙PLC的hostli
nk通信 - c#方便调用次世代AntiVC.dll插件
- C# Socket_服务端向指定的客户端发送消
- asp.net-c#写的一个cookie和session登陆小实
- 淘宝、天猫、京东 API接口样例,C# 非
- C#初级不涉及数据库的学生成绩管理系
- C#制作PDF以及源代码.rar
- 单像空间后方交会C#版
- C# Excel导入导出
- 适合于WinCE应用开发的压缩解压缩库
- C#监控剪切板
- 对C#的树型控件TREEVIEW添加背景图片
- 用c#写的五子棋源代码
- C#中在picturebox中实时画矩形框
- C#在一块空间中鼠标中键操作图像
- C#制作qq截图自动框选功能
- 显示所有缓存 清除所有缓存 Asp.net(
- C#自动截屏/定时截屏/自动保存/快捷键
- C# 通过鼠标滚轮实现缩放图片和移动
- C# 动态生成RDLC报表
- C#调用考勤机API读取记录
- c# 真正的线控件直线、斜线而且不会
- C#写的 模拟 cmd界面
- c# winform 超漂亮按钮 控件
- C# 内存处理器、网络上行与下行实时
- 仿QQ的C#源码、仿QQ的C#源码
- C#版人机对弈五子棋
- MPU6050 实时图表上位机 C#
评论
共有 条评论