任何人都可以为轮盘选择功能提供一些伪代码吗?我该如何实现这个:

我真的不明白如何阅读这个数学符号.我从未接受过任何概率或统计数据.
roulette-wheel-selection genetic-algorithm evolutionary-algorithm
我想知道在商业代码中找到遗传算法方法是多么常见.
在我看来,某些类型的调度程序可以从GA引擎中受益,作为主算法的补充.
我想通过线条(以及将来的文字)自动划分古代手写文字的图像.
我只是使用简单的数字化(基于像素的亮度).之后我将数据存储到二维数组中.
我的第一个算法很简单 - 如果数组的一行中的黑色像素多于最大值和最小值的均方根,则该行是行的一部分.
在形成线条列表后,我切断了高度低于平均值的线条.最后它变成了某种线性回归,试图最小化空行和文本行之间的差异.(我以为这个事实)

我的第二次尝试 - 我尝试使用GA和几个健身功能.染色体包含3个值 - xo,x1,x2.xo [-1; 0] x1 [0; 0.5] x2 [0; 0.5]
确定行到行的同一性的函数是(xo +α1x1+α2x2)> 0,其中α1是行中黑色像素的缩放和,α2是行中极端黑色像素之间的范围的中值.(a1,a2 [0,1])我试过的另一个函数是(x1 <α1或x2>α2)和(1/xo + [a1 x1]/[a2 x2])> 0
最后一个函数是最多的高效.
适应度函数是
(1 /(HeigthRange + SpacesRange))
范围是最大值和最小值之间的差异.它代表了文本的同质性.此功能的全局最佳 - 将图像划分为线条的最平滑方式.
我使用C#和我的自编码GA(经典,2点交叉,灰色代码染色体,最大群体为40,突变率为0.05)
现在我没有想法如何将这个图像分成几行,精度达到100%.
这样做的有效算法是什么?
更新: 原始图像 原始BMP(1.3 MB)
更新2:
将此文本的结果改进为100%

我是怎么做到的:
问题:

GA令人惊讶地未能认识到这一点.我看了'find rages'函数的调试数据,发现在'无法识别'的地方有太多的噪音.功能代码如下:
public double[] Ranges()
{ …Run Code Online (Sandbox Code Playgroud) 进化编程似乎是解决许多优化问题的好方法.这个想法非常简单,实施不会产生问题.
我想知道是否有任何方法可以进化创建ruby/python脚本(或任何其他语言)的程序?
这个想法很简单:
但仍然存在一些问题:
可生成的程序示例:
创建以N个数字作为输入并将其均值作为输出返回的脚本.
如果有任何尝试创建此类算法,我会很高兴看到任何链接/来源.
algorithm code-generation genetic-programming genetic-algorithm evolutionary-algorithm
给定一个图像和一组标签附加到图像上的特定点,我正在寻找一种算法,以一定的约束将标签布局到图像的两侧(每侧标签大致相同,标签大致等距离,将标签连接到各自的点,没有线交叉的线.
现在,通过按Y坐标(它们所指的点)对标签进行排序,通常可以非常天真地找到近似解决方案,如本例所示(仅限概念证明,请忽略实际数据的准确度等)!
现在为了满足没有过境的条件,我想到了一些想法:
在我开始其中之一之前,我会欢迎其他人的意见:有其他人遇到过类似问题并有任何信息来报告上述任何方法的成功/失败,或者他们是否有更好的/更简单的解决方案,我没有发生?感谢您的输入!
sorting algorithm dynamic-programming backtracking genetic-algorithm
我已经实现了许多遗传算法来解决各种问题.但是我仍然对交叉/重组的有用性持怀疑态度.
我通常在实现交叉之前首先实现变异.在我实施交叉之后,与简单地使用突变并在每一代中引入一些随机个体以确保遗传相比,我通常不会看到产生良好候选解决方案的速率显着提高.
当然,这可能是由于交叉函数和/或概率的选择不当,但我想得到一些具体的解释/证据,说明为什么/是否交叉改善了GA.有没有关于此的研究?
我理解它背后的原因:交叉可以将两个人的优势结合成一个人.但对我来说,就像说我们可以交配科学家和美洲虎来获得智能和快速的混合动力.
编辑:在mcdowella的回答中,他提到了如何找到一个案例,从多个起点爬山可以改善交叉是非常重要的.有人可以详细说明这一点吗?
我正在编写一个带有困难编程问题的调度程序.有几个事件,每个事件都有多个会议时间.我需要找到会议时间的安排,以便每个时间表包含任何给定事件一次,使用每个事件的多个会议时间之一.
显然我可以使用蛮力,但这很少是最好的解决方案.我猜这是一个相对基本的计算机科学问题,一旦我开始学习计算机科学课程,我就会学到这些问题.与此同时,我更喜欢任何我可以阅读的链接,甚至只是我可以谷歌的名字.
我想对遗传算法和遗传编程之间的差异做一个简单的解释(没有太多的编程术语).例子也将不胜感激.
显然,在遗传编程中,解决方案是计算机程序.另一方面,遗传算法将解决方案表示为一串数字.还有其他差异吗?
我是整数线性编程的新手.我计划使用整数线性编程求解器来解决我的组合优化问题.我更熟悉IDE上的C++ /面向对象编程.现在我使用NetBeans和Cygwin一起编写我的应用程序.
我可以问一下,对我来说是否有一个简单易用的ILP求解器?或者这取决于我想解决的问题?我正在尝试做一些资源映射优化.如果需要任何进一步的信息,请告诉我.
非常感谢,Cassie.
c++ algorithm linear-programming genetic-algorithm graph-algorithm
什么是遗传算法或遗传编程中的交叉概率和突变概率?有人可以从实施角度解释它们!