现在,每个遗传C#库(A.Forge、遗传算法框架、GeneticSharp)似乎只评估单个Chromosome,然后使用各种选择方法之一来创建新一代.由于我的问题涉及两个AI相互对抗,因此单独评估它们的适应性有点困难。虽然游戏足够简单,可以创建一些表面障碍(AI不直接交互,但障碍会发送给其他游戏),这会让我获得一些抽象的适应性,但这并不是“真正的”交易.这些库似乎也没有提供我可以实现这种评估方法的另一个接口(interface)。是否有其他框架允许这样做,还是我需要从头开始? 最佳答案 每个遗传算法库都应该有一些方法供您定义适应度
想象一下下面的类型:publicstructAccount{publicintId;publicdoubleAmount;}同步两个的最佳算法是什么IList在C#2.0中?(没有linq)?第一个列表(L1)是引用列表,第二个(L2)是根据第一个来同步的:L2中不再存在于L1中的所有帐户必须从L2中删除必须更新L1中仍然存在的L2中的所有帐户(金额属性)所有在L1中但尚未在L2中的帐户必须添加到L2Id标识帐户。找到一种朴素且有效的算法并不难,但我想知道是否有一种智能解决方案可以在不破坏可读性和性能的情况下处理这种情况。编辑:帐户类型无关紧要,可以是一个类,具有属性、相等成员等。L1
我有两个句子需要相互比较。最终结果是一个句子在另一个句子中包含多少百分比,我的问题是我有100.000条记录需要与另外10条记录进行比较。那是1.000.000次循环,这在我的算法中非常慢。这是我正在使用的算法:privatedoubleBreakStringsAndCheck(strings1,strings2){if(s1==null||s2==null||s1.Length==0||s2.Length==0)return(double)0;string[]firstArray=s1.Split('');string[]secondArray=s2.Split('');if(fir
我需要找到图的2个顶点之间的最短路线。我有一个矩阵,其中包含所有权重。我该怎么做?目前,我有以下代码:privateint[]Dijkstra(intstart,intend){bool[]done=newbool[8];int[]parent=newint[8];for(inti=0;i它有效,但是,但是我不知道如何让它找到例如1和3之间的最短路线,并返回1=>4=>2=>3之类的路线。提前致谢。 最佳答案 Djikstra算法使用父数组来跟踪从开始到结束的最短路径。您将从parent[end]开始并跟随数组的条目,直到您回到起点
我正在开发一个Silverlight应用程序,我想创建一个由5个切换按钮(用于菜单选项)组成的分组,这些按钮在被单击时会产生动画效果(尺寸会增大),并且还会导致组中任何之前单击的按钮取消单击并产生动画效果回到缩小后的尺寸。我知道我可以使用蛮力方法,让应用程序直接知道每个按钮,但如果我添加或更改菜单(添加/删除按钮),我必须记住修改代码(这是不好,因为我很健忘)。有没有一种方法可以更智能地对按钮进行分组,以便在单击一个按钮时可以告诉组中的所有其他按钮取消单击?谢谢!托德 最佳答案 特别感谢MichaelS.Scherotter为我指明
我有一个类如下:publicclassActualClass{publicstringBookName{get;set;}publicstringIssuerName{get;set;}publicDateTimeDateOfIssue{get;set;}publicboolStatus{get;set;}}表中有如下数据:对于以下viewModel类,我想按IssuerName和DateOfIssue对它们进行分组:publicclassViewModel{publicstringIssuerName{get;set;}publicDateTimeDateOfIssue{get;se
这个问题在这里已经有了答案:Whichsortingalgorithmisusedby.netinIComparer(3个答案)关闭9年前。在.NET中实现IComparable之类的东西时,有人可以建议.NET使用什么排序算法对基础数据进行实际排序吗?所使用的算法是可定制的还是可选的?
如何以3位数字分组显示数字。例如:1234为1,234或1234 最佳答案 来自StandardNumericFormatStrings中的数字(“N”)格式说明符部分:doubledblValue=-12445.6789;Console.WriteLine(dblValue.ToString("N",CultureInfo.InvariantCulture));//Displays-12,445.68Console.WriteLine(dblValue.ToString("N1",CultureInfo.CreateSpecifi
我有一个非常简单的List每个项目包含很多单个字符的设置(IEaforeach将控制台输出为“a”“k”“p”等)我想做的是能够对项目进行分组,并计算每个项目出现的次数,这样我就会得到类似于以下的输出:a-2t-3y-3关于执行此操作的最佳方法的任何提示?如果有任何帮助,我正在使用.Net4。 最佳答案 (鉴于每个条目都是一个字符,顺便说一下,有什么理由没有List吗?)怎么样://TogetaDictionaryvarcounts=list.GroupBy(x=>x).ToDictionary(g=>g.Key,g=>g.Coun
我有下面的代码示例,它查询产品列表。varproductResults=Products.Where((p)=>refFilterSequence.Contains(p.Ref)).GroupBy(g=>g.Code,(key,g)=>g.OrderBy(whp=>whp.Ref).First()).ToList();这完全符合预期,并在使用内存集合时返回我想要的4行,但在针对Oracle数据库运行时:.GroupBy(g=>g.Code,(key,g)=>g.OrderBy(whp=>whp.Ref).First())这会引发一个错误,提示我应该使用Oracle数据库不支持的Firs