什么是遗传算法/遗传编程解决方案很好的例子? [关闭](What are good exampl

2019-07-21 11:55发布

遗传算法 (GA)和遗传编程 (GP)是研究的有趣的地方。

我想知道你有使用GA / GP和你使用的,如果你没有推出自己的什么库/框架解决的具体问题。

问题:

  • 有什么问题,你使用GA / GP解决?
  • 你用什么库/框架?

我在寻找第一手的经验,所以请不要回答,除非你有。

Answer 1:

做作业。

我的第一份工作是一个专业的程序员(1995年)是写S&P500期货遗传算法基于自动交易系统。 应用程序是用Visual Basic编写3 [!],我不知道我该怎么做了什么回去以后,因为VB3甚至没有类。

在应用程序启动时随机产生的固定长度的字符串(“基因”的部分),其中的每一个对应于在S&P500期货分钟按分钟价格数据的一个特定的形状,以及以特定的顺序的群(买或卖)和止损和止利润金额。 每个字符串(或“基因”)有它的盈利表现将到3年的历史数据的运行评估; 只要指定的“形”相匹配的历史数据,我以为相应的买入或卖出定单和评估交易的结果。 我补充说,每个基因开始的钱一个固定量,从而有可能破产,并完全从基因库中删除了警告。

群体的每个评估后,幸存者杂种(从两个父母通过仅混合比特)随机地,与基因的可能性被选为父正比于它产生的利润。 我还添加了点突变的可能性来调剂了一点东西。 这几百代后,我结束了基因的人口,可以把$ 5000个到平均约$ 10000,无死亡/ brokeness的机会(历史数据,当然)。

不幸的是,我从来没有使用这个系统,住,因为我的老板在不到3个月损失将近$ 100,000交易的传统方式的机会,他失去了他愿意继续与该项目。 现在回想起来,我觉得该系统会作出巨大的利润 - 不是因为我一定在做任何事情的权利,而是因为我公司生产发生了基因的人口走向买盘约5偏置(相对于销售订单): 1倍的比例。 而且,因为我们知道我们的事后20/20,市场在1995年以后上升了一点。



Answer 2:

我做了住在这个小世界一个小动物。 他们有它收到来自世界一些投入神经网络的大脑和输出是为其他行为中的运动矢量。 他们的大脑进行了“基因”。

该计划开始与随机大脑的小动物的随机人群。 输入和输出神经元是静态的,但什么是之间是不是。

环境包含食品和危险。 食品增加能量,当你有足够的能量,你可以交配。 危险将降低能源和节能是否为0,他们死了。

最终,生物进化到移动世界各地,寻找食物,避免危险。

然后,我决定做一个小实验。 我给动物的大脑被称为“大嘴”的输出神经元被称为“耳”的输入神经元。 开始了,惊讶地发现,他们发展到最大限度的空间,每一个相应的生物会留在其各自的部分(食品放在随机)。 他们学会了互相合作,在每个人的方式没有得到。 总是有例外。

然后,我尝试一些有趣的事情。 我死的生物会成为食物。 猜猜发生了什么事! 两种类型的生物进化,那些在成群攻击等等,那些都是回避高。

那么,什么是教训吗? 通讯方式合作。 只要你介绍一个元素,其中伤害另一意味着你有所收获,那么合作被破坏。

我不知道这反映出自由市场和资本主义制度。 我的意思是,如果企业能伤害他们的竞争, 摆脱它 ,那么它明确表示,他们将在其权力范围伤害的竞争做的一切。

编辑:

我用C写++不使用框架。 写我自己的神经网络和遗传算法的代码。 埃里克,谢谢你这么说是有道理的。 人们通常不相信GA的权力(虽然局限性是显而易见的),直到他们发挥它。 GA是简约而不简单。

对于怀疑者,神经网络已被证明能够模拟任何功能,如果他们有一个以上的层。 GA是导航解空间寻找本地和全球的潜在最少一个非常简单的方法。 结合GA与神经网络,你有一个很好的方法来发现找到通用问题的近似解功能。 因为我们使用的神经网络,那么我们优化功能对于一些投入,而不是一些输入功能为别人都在用GA

这里是我们赖以生存例如演示代码: http://www.mempko.com/darcs/neural/demos/eaters/构建指令:

  • 安装的darcs,libboost,liballegro,GCC,cmake的,使
  • darcs clone --lazy http://www.mempko.com/darcs/neural/
  • cd neural
  • cmake .
  • make
  • cd demos/eaters
  • ./eaters



Answer 3:

我用了GA在我的婚礼上优化座位分配。 80位客人超过10桌。 评价工作的基础上让人们与他们的日期,把人的东西在普通在一起,让人们与单独的表完全相反的意见。

我跑了好几遍。 每一次,我得到了9个好表,以及一个与所有的奇数球。 最后,我的妻子做了座位分配。

我的旅行商优化使用染色体的一个新映射的行程,这使得它微不足道的繁殖和变异染色体不会产生无效之旅的风险。

更新 :由于几个人都问如何...

开始的客人(或城市)的一些任意但一致的排序,例如,按字母顺序排列的数组。 称此为参考的解决方案。 想想一个客人的指数为他/她的座位数。

而不是试图以这个顺序直接在染色体编码,编码我们转化对照品溶液进入一个新的解决方案的说明。 具体来说,我们把这些染色体,因为在阵列中的索引列表交换。 为了得到解码染色体,我们开始与对照品溶液和应用由染色体指示的所有互换。 数组中交换两个条目总是导致一个有效的解决方案:每间(或城市)仍然出现一次。

因此染色体可以是随机产生的,突变的,并与其他人交叉并总是会产生一个有效的解决方案。



Answer 4:

2004年1月,我被谁是为首次商用电子墨水创建电子飞利浦新的显示技术联络,索尼Librie,谁只在日本发行,年亚马逊Kindle之前,其他在美国上市销售一个欧洲。

飞利浦工程师们的一大难题。 该产品前几个月应该打市场,他们仍然得到改变页面时重影在屏幕上。 问题是200个驱动程序正在创建静电场。 每个驱动程序有一定的电压必须为零,1000 mV或这样的事情之间的权利设置。 但是,如果你改变了其中的一个,它会改变一切。

因此,优化每个驱动器的电压分别是出了问题。 值的可能组合的数量是数十亿美元,并花了大约1分钟为一个特殊的照相机来评估一个组合。 工程师们尝试了多种标准的优化技术,但没有将接近。

头部工程师联系我,因为我以前曾发布了一个遗传编程库到开源社区。 他问,如果GP / GA的将有助于如果我能参与进来。 我做到了,大约一个月我们一起工作,我的写作和调整GA库,对合成数据,以及他将其集成到他们的系统。 然后,一个周末他们让它与真品现场运行。

接下来的星期一,我从他和他们的硬件设计师,大约没有人会怎么认为,惊人的结果GA发现了这些发光的电子邮件。 这是它。 当年晚些时候,该产品投放市场。

我没有得到报酬一分,但我得到了'吹牛的权利。 他们从他们已经超出了预算开始时说,所以我知道这笔交易是什么之前,我开始做这个工作。 而且它是气体应用一个伟大的故事。 :)



Answer 5:

我用遗传算法(以及一些相关技术)来确定该试图让黄金农民使用偷来的信用卡支付网游风险管理系统的最佳设置。 该系统将采取几千交易与“已知”的值(欺诈与否),弄清设置的最佳组合是正确识别欺诈性交易,而无需太多的误报。

我们对几十个(布尔),交易的特点每一个被赋予了价值总额的数据。 如果大于阈值总量较高,交易欺诈行为。 该GA将创造大量的随机值的集合,评估它们对已知数据的语料库,选择得分最好的(两个欺诈检测和限制误报的数量)中的那些,然后跨品种从最好的几每一代人,产生了新一代的候选人。 若干代后最好的得分值的集合被视为获胜者。

创建已知数据的测试语料库对这个制度的阿喀琉斯之踵。 如果你等着退款,你想回应骗子,所以也有人将不得不手动审查大量的交易来建立数据的语料库,而不必等待时间过长时,后面几个月的时间。

这结束了识别绝大多数是排在欺诈,但不能完全得到它低于1%的最欺诈多发项目(假设90%进入交易可能是诈骗,这是做得相当好)。

我所做的这一切用perl。 在一个相当老的Linux盒一体的软件运行将需要1-2个小时运行(20分钟通过WAN链路负载数据的其余时间花在捣鼓)。 任何一代人的大小是由可用RAM限制。 我略有改动的参数,寻找一个特别好的结果集遍地运行它。

总而言之,这可以避免一些与手动试图调整几十舞弊指标的相对值来了失态,并一致想出更好的解决方案比我能手动创建。 据我所知,它仍然在使用(约3年后,我写的)。



Answer 6:

足球小费。 我内置了GA系统一周预测到在AFL(澳式足球)比赛周的结果。

几年前,我厌倦了标准工作的足球池,大家正要在线和在压一些权威人士服用选秀权。 所以,我想它可能不会太难打了一堆广播新闻专业的,对不对? 我首先想到的是采取从结果梅西等级 ,然后在本赛季赢得的名声和荣耀之后我的策略露底。 但是,对于原因,我从来没有发现梅西不跟踪AFL。 在我愤世嫉俗者认为,这是因为每个AFL比赛的胜负已经基本成为随机的机会,但我近期规则的改变投诉不同的论坛归属。

该系统主要考虑的进攻实力,防守实力,主场优势,一周一周的改善(或缺乏)和改变中每一种的速度。 这创造了一组多项式方程为每个团队在整个赛季。 每场比赛给定日期的冠军和成绩可以计算出来。 我们的目标是要找到一套最紧密匹配所有过去比赛的结果,并使用该组来预测未来几周的比赛系数。

在实践中,系统会发现,在过去的游戏结果的90%准确预测的解决方案。 然后,它会成功地挑选游戏的60-80%左右为即将到来的一周(也就是一周没有训练集)。

其结果是:正上方的包中。 没有大的奖金也不是说我可以用它来击败拉斯维加斯的系统。 这很有趣,虽然。

我内置一切从头开始,不使用框架。



Answer 7:

除了一些常见的问题,如旅行商和变化罗杰Alsing的蒙娜丽莎节目 ,我也写一个渐进的数独解算器 (这需要多一点原来以为我的一部分,而不仅仅是重新实现别人的想法)。 有解决数独更可靠的算法,但在进化方法效果相当好。

在过去的几天我一直在玩弄一个渐进的程序后看到寻找“冷甲板”扑克这篇文章在Reddit上。 这不是在目前比较满意,但我想我可以改进。

我有我自己的框架 ,我使用的进化算法。



Answer 8:

我开发了一个三维激光表面轮廓系统,为货运业在1992年我公司研制后面的系统所依赖三维的三角测量家酿GA和使用自定义的激光线扫描仪,512×512摄像头(带自定义捕获HW)。 相机和激光之间的距离永远不会是精确和摄像机的焦点并不在你希望它是在256,256位置可以找到!

这是一场噩梦,试图使用标准的几何和模拟退火风格方程求解制定出校准参数。

遗传算法是在一个晚上刮起了和我创建了一个校准块,以测试它。 我知道立方体尺寸精度高,因此当时的想法是,我的GA可以发展一组用于每个扫描单元,将克服生产变化定制三角参数。

诀窍工作一种享受。 我大吃一惊,至少可以说! 在大约10代我的“虚拟”立方体(从原始扫描生成并从校准参数重建)实际上看起来像一个魔方! 约50代后,我有我需要的校准。



Answer 9:

它往往很难,当你正计划粉刷房屋,以得到一个确切的颜色组合。 通常情况下,你心里有一些色彩,但它不是一种颜色,厂商会显示。

昨天,我的教授谁是GA研究员在德国提到关于一个真实的故事(抱歉,我没有更多的引用,是的,我能找到它,如果任何一个请求)。 这家伙(让我们叫他颜色的家伙 ),用于从门到门去帮助人们找到确切的颜色代码( RGB ),这将是最接近客户的初衷是什么。 这里是他会怎么做:

颜色的家伙用来与他进行其使用GA的软件程序。 他用于启动与每个编码为编码染色体(其解码值将是一个RGB值)4不同的颜色 - 。 消费者挑选的4种颜色1(这是他/她心中想与之最接近的)。 然后程序会最大的健身分配给个人和移动到使用突变/交叉 下一代 。 将重复上述步骤,直到消费者已经找到了曾经告诉他的RGB组合的确切颜色,然后颜色的家伙

通过对颜色分配最大的健身关闭哪些消费者心目中, 颜色家伙的程序越来越多的机会收敛到颜色,消费者心中都有完全相同。 我发现它非常有趣!

现在,我已经得到了-1,如果你正在计划更-1的,请。 阐明这样做的理由!



Answer 10:

由于我的本科学位CompSci的一部分,我们被分配寻优JVM标记为的Jikes研究虚拟机的问题。 这是使用Dicappo基准套件,它返回的时间到控制台进行评估。 我写的切换这些标志,以提高基准套件的运行分布式gentic alogirthm,虽然花了几天来运行,以弥补影响结果的硬件抖动。 唯一的问题是我没有正确了解编译原理(这是分配的意图)。

我可以用等植物学默认标志播种初始种群,但什么是有趣的是,该算法找到了一个非常相似的构造O3优化级别(但在许多实际测试速度更快)。

编辑:另外,我写我自己的遗传算法框架的Python为转让,只是用POPEN命令来运行各种基准测试,但如果它不是一个分摊的任务,我会看着pyEvolve。



Answer 11:

首先,“遗传编程”由乔纳森讲座( 亚马逊 )是相当多的书遗传和进化算法/编程技术,有许多例子。 我强烈建议检查出来。

至于我自己用遗传算法的,我用了一个(家庭长大的)遗传算法演变为一个对象集合/破坏场景中群算法(实际目的可能已被清除雷区)。 这里是一个链接的文件 。 我所做的最有趣的部分是多级的健身功能,这是一种必然,因为简单的健身功能,没有提供足够的信息为遗传算法充分群体成员之间进行区分。



Answer 12:

几个星期前,我建议一个上SO溶液使用遗传算法来解决图形布局的问题。 这是一个约束优化问题的一个例子。

此外,在机器学习的区域,我实现在从头C / C ++基于GA-分类规则框架。
我也用GA在样本项目训练的人工神经网络 ,而不是使用著名的(ANN) BP算法 。

此外,和我的研究生研究的一部分,我用的GA训练隐马尔可夫模型为基于EM-额外的方法鲍姆-韦尔奇算法(在C / C ++再次)。



Answer 13:

我是一个团队调查使用进化计算(EC)的自动修复现有程序中的bug的一部分。 我们已经成功修复了一些在现实世界中的软件项目真正的bug(见这个项目的主页 )。

我们有这个EC修复技术的两个应用程序。

  • 第一个( 可通过该项目页面代码和再现信息 )的发展从现有的C程序分析的抽象语法树,并用我们自己的自定义EC发动机OCaml中实现。

  • 第二个( 可通过该项目页面代码和再现信息 ),我对这个项目的个人贡献,演变从用多种编程语言的编译程序在x86汇编或Java字节码。 这个应用程序是用Clojure实现,并且还使用内置EC发动机自己的定制。

进化计算的一个好的方面是技术的简单性使得它可以编写自己的自定义实现不会有太大困难。 对于遗传编程的一个很好的免费提供的介绍文字看场指南遗传编程



Answer 14:

的同事,和我正在使用我们的公司需要不同的标准对装载货物的解决方案工作到卡车上。 我一直工作在一个遗传算法的解决方案,同时他是用一个分支,具有侵略性的修剪约束。 我们仍然在使用这一解决方案,但到目前为止,我们已经获得良好的结果的过程。



Answer 15:

几年前,我用遗传算法的优化ASR(自动语音识别)语法更好的识别率。 我开始的选择非常简单列出了(其中GA是为每个插槽测试的可能条件组合)和我的工作方式,以更加开放和复杂的语法。 健身被一种语音距离函数的下测量而言/序列之间的分离来确定。 我也尝试做一个语法弱等效变化找到一个编译成一个更紧凑的表示(在我的直接算法去年底,它极大地提高了“语言”,我们可以在应用程序中使用的大小) 。

最近我把他们当作为测试准备的各种算法生成解决方案质量的默认假设。 这在很大程度上涉及分类和不同种类的配件问题(即创建解释一组由评审过的数据集(S)作出的选择一个“规则”)。



Answer 16:

我做了一个名为“GALAB”,解决了许多问题的完整框架GA:

  • 定位GSM的ANT(BTS)来降低重叠&空白位置。
  • 资源约束项目调度。
  • 进化画面创建。 ( Evopic )
  • 旅行商问题。
  • N-二女王&N色的问题。
  • 骑士的旅游及背包问题。
  • 幻方与数独谜题。
  • 串压缩,基于超弦的问题。
  • 2D包装问题。
  • 微小的人造生命APP。
  • 魔方拼图。


Answer 17:

我曾经使用遗传算法优化的内存地址的哈希函数。 该地址是4K或8K页面大小,所以他们表现出在地址的位模式的一些可预测性(至少显著位全部为零;中间位定期递增等)原来的哈希函数是“矮胖” - 它往往聚集命中每月的第三个哈希桶。 改进的算法有一个近乎完美的分布。



Answer 18:

我不知道,如果功课计数...

在我的研究中,我们推出我们自己的程序来解决旅行商问题。

当时的想法是让几个标准的比较(难度映射的问题,性能等),我们还使用其他技术,例如模拟退火 。

它的工作非常好,但我们花了一段时间来了解如何正确地做“再现”阶段:在手建模问题转化为适合于遗传编程的东西真的让我觉得最难的部分...

这是一个有趣的过程,因为我们还与神经网络等涉足。

我想知道是否有人使用这种在“生产”代码编程的。



Answer 19:

我建了一个简单的遗传算法,因为它是正在播放中提取有用的模式出音乐的频谱。 被使用的输出来驱动的Winamp的插件的图形效果。

  • 输入:几个FFT帧(想象浮子的2D阵列)
  • 输出:单浮点值(输入的加权和),阈值化以0.0或1.0
  • 基因:输入权重
  • 适应度函数:占空比,脉冲宽度和BPM明智的范围内的组合。

我不得不调谐到频谱的不同部分以及不同BPM限制一些气,所以他们并没有趋向于向同一模式收敛。 从每个群体中的顶部4的输出被送到渲染引擎。

一个有趣的副作用是,在人群中的平均适应度是在音乐的变化的良好指标,但它通常花4-5秒弄明白。



Answer 20:

正如我的论文的一部分,我写的多目标优化算法mPOEMS一个通用的Java框架(多目标优化的原型与进化改进步骤),这是基于进化概念的GA。 这是所有的独立问题,部分已经从相关问题的部分分离的方式通用的,一个接口povided使用该框架只添加问题相关的部分。 因此,人们谁想要使用的算法不必从零开始,它有利于工作了很多。

你可以找到的代码在这里 。

你可以用这个算法找到的解决方案已经在国家的最先进的算法SPEA-2和NSGA科学的工作进行了比较,它已被证明,该算法performes相媲美,甚至更好,这取决于指标,您取来衡量性能,尤其是取决于你正在寻找的优化-问题。

你可以找到它在这里 。

此外,作为我的论文和工作证明的一部分,我申请这个框架在投资组合管理中发现的项目选择问题。 它是关于选择其中最值添加到公司的项目,支持该公司的大部分策略或支持任何其他任意目标。 例如,选择一定数量的项目从一个特定的类别或项目协同效应的最大化,...

我的论文,其适用这一框架的项目选择问题: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

之后,我曾在一个投资组合管理部门在财富500强,他们使用这还应用了GA的项目选择问题/组合优化商业软件之一。

更多资源:

该框架的文件: http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf

mPOEMS演示文件: http://portal.acm.org/citation.cfm?id=1792634.1792653

其实有一点大家热情的可以在通用框架的代码很容易适应任意多目标优化问题。



Answer 21:

在工作中我有以下问题:令M任务和N的DSP,什么将任务分配给DSP的最好方法是什么? “最佳”被定义为“最小化最加载DSP的负载”。 有不同类型的任务,以及各种任务类型取决于他们被分配在那里有各种性能的后果,所以我的编码设置的作业对DSP任务作为“DNA串”,然后使用遗传算法“繁殖”最好的分配字符串我所能。

它的工作相当好(比我以前的方法,这是评估各种可能的组合要好得多......上不平凡的问题大小,它会采取年才能完成!),唯一的问题是,有没有办法告诉如果最佳的解决方案已经达成与否。 你只能决定是否在当前“尽力而为”是不够好,还是让它运行的时间更长,看它是否能够做的更好。



Answer 22:

有(顺便说一下,每月的编程竞赛伟大的网站),其中一个应该解决的unsolveable数独上codechef.com的竞争(一个要来尽可能接近以尽可能少的错collumns /行/等地)。

我会做什么,是先产生一个完美的数独,然后覆盖领域,已经给出。 从这个不错的基础上,我用遗传编程,以提高我的解决方案。

我想不出在这种情况下,确定性的办法,因为数独是300×300和搜索就已经采取了太长时间。



Answer 23:

我用一个简单的遗传算法来优化信号到被表示为二进制串波的信噪比。 通过翻转位超过几百万代某些方面我是能够产生一个转换,导致更高的信号,即波的信噪比。 该算法可能也受到了“模拟退火”,但在这种情况下不使用。 在他们的核心,遗传算法很简单,这是一样简单,我已经看到了用例的,所以我没有使用一代创造和选择的框架 - 只是随机种子和信噪比在手的功能。



Answer 24:

在学校的一个研讨会上,我们开发一个应用程序生成基于在音乐模式下的音乐。 该方案在Java中是构建和输出是与歌曲的MIDI文件。 我们使用GA的distincts aproachs产生的音乐。 我想,这个程序可以探索新的组合物。



Answer 25:

在大学阶段,我们使用NERO(神经网络和遗传算法的组合)教授在游戏中机器人做出明智的决策。 这是很酷。



Answer 26:

我通过一组的食物来源和矿山随机网格地形的开发机器人导航的一个多线程的基于Swing的模拟和发展探索机器人的行为和优胜劣汰基因的生存优化机器人染色体的遗传算法为基础的战略。 这是用图表和每个迭代周期的映射完成。

因为,那时我已经开发甚至更多的游戏行为。 示例应用程序我最近建立了自己是一个遗传算法解决途径发现在英国出差的销售人问题考虑起点和目标状态,以及一个/多个连接点,延误,取消,建设工程,下班高峰期,公共罢工,最快之间考虑VS最廉价的路线。 然后提供的路线采取在某一天一个平衡的建议。

一般情况下,我的策略是利用基因的基于POJO的representaton然后我应用特定的接口实现供选择,变异,交叉策略和标准点。 然后我的适应度函数基本上成为基于策略和标准我需要申请一个启发式衡量一个相当复杂。

我也看着利用将算法理解的逻辑,并试图确定与代码修复建议,bug报告系统的突变周期内码应用遗传算法为自动化测试。 基本上,这是一种优化我的代码,并提供改善建议,以及自动化的新程序代码发现的一种方式。 我也试图遗传算法适用于音乐制作之中的其他应用程序。

一般情况下,我觉得进化策略最喜欢启发式/全局优化策略,他们学得慢,但是也会开始回暖的解决方案变得越来越接近目标状态,只要你的健身功能和启发式很好排列产生您的搜索空间内的收敛。



Answer 27:

我曾经试图让计算机玩家对围棋的,完全基于遗传规划。 每个节目将被视为用于移动一个序列的评价函数。 制作的节目不太好,虽然,即使在一个相当diminuitive 3×4板。

我用Perl和编码都要亲力亲为。 我今天会有所不同做的事情。



Answer 28:

看完后盲眼钟表匠 ,我感兴趣的是帕斯卡程序道金斯说,他已经发展到创造一种可以随着时间而变化的生物模型。 我很感兴趣写我自己的使用群 。 我没有让他所做的一切花哨的小动物图形,但我的“染色体”这影响到生存的生物能力控制特性。 他们住在一个简单的世界,可能决一雌雄对对方和自己的环境。

生物活或死的机会部分原因,但也是基于他们如何有效地适应当地的环境,以及他们如何消耗的营养物质及他们是如何成功地再现。 这很有趣,也更证明我的妻子,我是一个怪胎。



Answer 29:

这是前一段时间,但我滚了GA演变哪些是有效的图像处理内核,从哈勃太空望远镜(HST)的图像删除宇宙射线痕迹。 标准的做法是采取多重曝光哈勃望远镜,只保留的东西,是在所有的图像相同。 由于HST时间是如此珍贵,我是一个天文爱好者,并在最近参加了进化计算的代表大会上,我想过使用GA清理单曝光。

个人均的那拿了一个3x3像素区域作为输入,进行一些计算树的形式,并产生了是否以及如何修改中心像素的决定。 健身是通过比较传统的方式(即堆叠曝光)清理的图像输出来判断。

它实际上有点工作,但不是不够好,以保证上述原来的做法。 如果我没有时间约束通过我的论文,我可能已经扩大了该算法可用遗传零件箱。 我敢肯定,我可以显著改善它。

使用的库:如果正确地记得IRAF和cfitsio天文图像数据处理和I / O。



Answer 30:

我在青年GA实验。 我写在Python模拟器的工作如下。

该基因编码的神经网络的权重。

神经网络的输入是“触角”是检测的接触。 数值越高,意味着非常接近,0意味着不接触。

输出是两个“轮子”。 如果两个车轮向前走去,那家伙向前走去。 如果车轮是在相反的方向,在家伙竟然。 输出的强度来确定所述车轮转向的速度。

生成一个简单的迷宫。 这是非常简单的 - 即使是很蠢的。 有在屏幕底部的开始,并在顶部有一个目标,在两者之间四壁。 每个墙已采取了空间随机,所以总是有一个路径。

我开始乱的家伙(我认为他们作为缺陷)的开始。 一旦一个人达到了目标,或时间限制达到,健身计算。 这是成反比的,当时的目标的距离。

然后我成对他们的时间,“孕育”他们创造下一代。 被选择的要被饲养的概率是正比于它的适应性。 有时,这意味着一个与自身繁殖多次,如果它有一个非常高的相对健康。

我以为他们会制定了“左墙拥抱”的行为,但他们似乎总是遵循非最佳的东西。 在每一个实验中,错误收敛到一个螺旋形的图案。 直到他们感动了墙到右他们将螺旋向外。 他们会遵循,那么当他们到了差距,他们会盘旋而下(远离间隙)和周围。 他们会做一个270度的大转弯到左边,然后通常进入间隙。 这将让他们通过大多数的墙壁,并经常到目标。

一个功能,我加是把在一个颜色载体导入基因,以跟踪个人之间的关联。 几代人之后,他们全是相同的颜色,它告诉我,我应该有更好的育种策略。

我试图让他们开发出更好的策略。 我复杂的神经网络 - 添加内存和一切。 它并没有帮助。 我总是看到了同样的策略。

我尝试过各种东西就像只有100代后重组独立的基因库。 但没有将他们推到一个更好的策略。 也许这是不可能的。

另一个有趣的事情是绘图健身随着时间的推移。 有明确的图案,如最大的健身会下来之前它会去了。 我从来没有见过一个进化的书谈论这种可能性。



文章来源: What are good examples of genetic algorithms/genetic programming solutions? [closed]